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

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

C#のDateTime.ToFileTime()メソッドは、現在のDateTimeオブジェクトの値を「Windowsファイル時刻(Windows file time)」に変換するために使用されます。

Windowsファイル時刻とは、西暦1601年1月1日午前0時00分(UTC)を起点として、そこから経過した時間を100ナノ秒単位で表した64ビットの整数値です。ファイルシステムがタイムスタンプを管理する際に内部的に利用されている形式で、long型(Int64)として取得できます。

構文

ToFileTime()メソッドの構文は以下のとおりです。引数は不要で、戻り値としてlong型のWindowsファイル時刻が返されます。

public long ToFileTime ();

サンプルコード1:現在の日時を変換する

まずは、現在の日時(DateTime.Now)をWindowsファイル時刻に変換する基本的な例を見てみましょう。

using System;
public class Demo {
   public static void Main() {
      DateTime d = DateTime.Now;
      Console.WriteLine("Date = {0}", d);
      long res = d.ToFileTime();
      Console.WriteLine("Windows file time = {0}", res);
   }
}

実行結果

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

Date = 10/16/2019 8:17:26 AM
Windows file time = 132156874462559390

サンプルコード2:指定した日時を変換する

続いて、特定の日時を指定してWindowsファイル時刻に変換する例を紹介します。

using System;
public class Demo {
   public static void Main() {
      DateTime d = new DateTime(2019, 05, 10, 6, 10, 25);
      Console.WriteLine("Date = {0}", d);
      long res = d.ToFileTime();
      Console.WriteLine("Windows file time = {0}", res);
   }
}

実行結果

このコードを実行すると、以下の出力になります。

Date = 5/10/2019 6:10:25 AM
Windows file time = 132019422250000000

まとめ

DateTime.ToFileTime()メソッドを使えば、DateTimeオブジェクトの値を簡単にWindowsファイル時刻へ変換できます。変換結果はlong型で返されるため、ファイルの作成日時や更新日時を扱う処理や、日時を数値として比較・保存したい場合に便利です。なお、逆にWindowsファイル時刻からDateTimeオブジェクトへ復元したい場合は、DateTime.FromFileTime()メソッドを使用します。

  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型で指定します。負の値を渡すことで、日付を減算(過去の日付に移動