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

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

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

Windowsファイル時刻とは、西暦1601年1月1日午前0時0分0秒(UTC)を起点とした、100ナノ秒間隔の経過時間を表す64ビット整数値です。この形式は、NTFSなどのWindowsファイルシステムでファイルの作成日時や更新日時を管理する際に利用されています。

構文

ToFileTimeUtc()メソッドの構文は以下の通りです。

public long ToFileTimeUtc ();

戻り値はlong型で、変換後のWindowsファイル時刻が返されます。なお、このメソッドはUTC(協定世界時)に基づいて値を返すため、ローカルタイムゾーンの影響を受けません。

使用例1:指定した日時を変換する

まず、特定の日時を持つDateTimeオブジェクトを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.ToFileTimeUtc();
      Console.WriteLine("Windows file time (Utc) = {0}", res);
   }
}

出力結果

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

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

使用例2:現在の日時を変換する

次に、DateTime.Nowを使って現在の日時を取得し、それをWindowsファイル時刻に変換する例です。

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

出力結果

実行したタイミングによって値は異なりますが、以下のような出力になります。

Date = 10/16/2019 8:25:58 AM
Windows file time (Utc) = 132156879583999032

まとめ

DateTime.ToFileTimeUtc()メソッドを使用することで、DateTimeオブジェクトの値を簡単にWindowsファイル時刻へ変換できます。ファイルシステムのタイムスタンプを扱う処理や、UTC基準の時刻情報が必要な場面で活用できる便利なメソッドです。類似メソッドとして、ローカル時刻ベースで変換を行うToFileTime()も存在するため、用途に応じて使い分けるとよいでしょう。

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

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

  2. C#のDateTime.ToFileTimeUtc()メソッドの使い方を解説

    C#のDateTime.ToFileTimeUtc()メソッドは、現在のDateTimeオブジェクトの値をWindowsファイル時刻(Windows file time)に変換するために使用されます。Windowsファイル時刻とは、西暦1601年1月1日午前0時0分0秒(UTC)を起点とした、100ナノ秒間隔の経過時間を表す64ビット整数値です。この形式は、NTFSなどのWindowsファイルシステムでファイルの作成日時や更新日時を管理する際に利用されています。構文ToFileTimeUtc()メソッドの構文は以下の通りです。public long ToFileTimeUtc ();戻り値はl