C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のDateTime.FromFileTime()メソッドの使い方を徹底解説

C#のDateTime.FromFileTime()メソッドは、指定されたWindowsファイル時刻を、それに相当するローカル時刻に変換するために使用される静的メソッドです。

Windowsファイル時刻とは、1601年1月1日午前0時(UTC)を基準とした経過時間を、100ナノ秒単位の「タイマー刻み(ticks)」で表した値です。ファイルシステムが保持する作成日時や更新日時などに利用されています。

構文

このメソッドの構文は以下のとおりです。

public static DateTime FromFileTime (long fileTime);

引数 fileTime には、タイマー刻み(ticks)で表されたWindowsファイル時刻をlong型で指定します。戻り値として、変換後のローカル時刻を表すDateTimeオブジェクトが返されます。

使用例1

まずは、具体的なファイル時刻の値を指定して変換を行う基本的な例を見てみましょう。

using System;
public class Demo {
    public static void Main() {
        DateTime d1 = DateTime.FromFileTime(100000000000);
        System.Console.WriteLine("DateTime = {0:dd} {0:y}, {0:hh}:{0:mm}:{0:ss} ", d1);
    }
}

出力結果

このコードを実行すると、次のような出力が得られます。

DateTime = 01 January 1601, 02:46:40

使用例2

続いて、ファイル時刻として「0」を指定した場合の動作を確認してみましょう。

using System;
public class Demo {
    public static void Main() {
        DateTime d1 = DateTime.FromFileTime(0);
        System.Console.WriteLine("DateTime = {0:dd} {0:y}, {0:hh}:{0:mm}:{0:ss} ", d1);
    }
}

出力結果

このコードを実行すると、次のような出力が得られます。

DateTime = 01 January 1601, 12:00:00

まとめ

DateTime.FromFileTime()メソッドを使うことで、Windows APIから取得したファイル時刻(ticks)を簡単にDateTime型のローカル時刻へ変換できます。なお、逆にDateTimeをWindowsファイル時刻へ変換したい場合は、ToFileTime()メソッドを使用します。両者を組み合わせることで、ファイルシステムの時刻情報を柔軟に扱うことが可能です。

  1. C#のDateTime.AddHours()メソッドの使い方を徹底解説

    C#のDateTime.AddHours()メソッドは、指定した時間数を現在のDateTimeインスタンスの値に加算するためのメソッドです。重要なポイントとして、このメソッドは元のDateTimeオブジェクトを変更せず、計算結果を含む新しいDateTimeオブジェクトを返します。基本仕様DateTimeは不変(イミュータブル)な構造体のため、AddHours()を呼び出しても元の値は変わりません。戻り値は加算後の日時を持つ新しいDateTimeです。構文public DateTime AddHours (double hrs);パラメータ hrs には加算する時間数を指定します。負の値を渡すこ

  2. C#のDateTime.AddDays()メソッドの使い方を徹底解説!日付に日数を加算する方法

    C#のDateTime.AddDays()メソッドは、現在のDateTimeインスタンスの値に指定した日数を加算するためのメソッドです。このメソッドは元のDateTimeオブジェクトを変更するのではなく、計算結果として新しいDateTimeオブジェクトを返します。そのため、戻り値を受け取る変数が必要になる点に注意しましょう。 基本構文 DateTime.AddDays()メソッドの構文は以下のとおりです。 public DateTime AddDays (double days); 引数 days には加算したい日数をdouble型で指定します。負の値を渡すことで、日付を減算(過去の日付に移動