エクスポート (0) 印刷
すべて展開
情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

DateTime.FromFileTime メソッド

2013/12/12

指定された Windows ファイル時刻を、それと等価の現地時刻に変換します。

Namespace:  System
アセンブリ:  mscorlib (mscorlib.dll 内)

public static DateTime FromFileTime(
	long fileTime
)

パラメーター

fileTime
型: System.Int64
タイマー刻み単位で表した Windows ファイルの時刻。

戻り値

型: System.DateTime
fileTime パラメーターによって表された日時に相当する現地時刻を表すオブジェクト。

例外条件
ArgumentOutOfRangeException

fileTime が 0 未満か、DateTime.MaxValue を超える時刻を表しています。

Windows ファイル時刻とは、世界協定時刻 (UTC) の A.D. (西暦紀元) 1601 年 1 月 1 日午前 00:00 時からの経過時間 (100 ナノ秒単位) を表す 64 ビット値です。Windows では、アプリケーションによるファイルの作成、アクセス、書き込みの時刻が、ファイル時刻を使用して記録されます。

fileTime パラメーターには、100 ナノ秒のタイマー刻みで表したファイル時刻を指定します。

戻り値は、DateTime です。この場合、Kind プロパティは DateTimeKind.Local です。

呼び出し時の注意

通常、FromFileTime メソッドは、ToFileTime メソッドによって保存された DateTime 値を復元します。ただし、2 つの値は次の条件下で異なることがあります。

  • DateTime 値のシリアル化および逆シリアル化が別のタイム ゾーンで発生する場合。たとえば、米国東部標準時タイムゾーンの午後 12 時 30 分という DateTime 値がシリアル化され、その後に米国太平洋標準時タイムゾーンに逆シリアル化される場合は、元の値である午後 12 時 30 分が午前 9 時 30 分に調整され、2 つのタイムゾーンの差が反映されます。

  • シリアル化された DateTime 値は、ローカル タイム ゾーンでの無効な時刻を表しますこの場合、ToFileTime メソッドは復元された DateTime 値をローカル タイム ゾーンで有効な時刻を表すように調整します。

    たとえば、米国の太平洋標準時ゾーンでは標準時間から夏時間への移行が 2010 年 3 月 14 日午前 2 時 00 分に起こり、そのときに時間が 1 時間進み、午前 3 時 00 分になります。この時間間隔は無効な時刻、つまり、このタイム ゾーンには存在しない時間間隔です。次の例では、ToFileTime メソッドによってこの範囲内にある時間が長整数値に変換され、FromFileTime メソッドによって復元され、元の値が有効な時刻になるように調整されます。例に示すように、特定の日付と時刻の値を TimeZoneInfo.IsInvalidTime メソッドに渡すことによって、その値が変更の対象になる可能性があるかどうかを判断できます。

    
    using System;
    
    public class Example
    {
       public static void Demo(System.Windows.Controls.TextBlock outputBlock)
       {
          DateTime date1 = new DateTime(2010, 3, 14, 2, 30, 00);
          outputBlock.Text += String.Format("Invalid Time: {0}",
                            TimeZoneInfo.Local.IsInvalidTime(date1)) + "\n";
          long ft = date1.ToFileTime();
          DateTime date2 = DateTime.FromFileTime(ft);
          outputBlock.Text += String.Format("{0} -> {1}", date1, date2) + "\n";
       }
    }
    // The example displays the following output:
    //       Invalid Time: True
    //       3/14/2010 2:30:00 AM -> 3/14/2010 3:30:00 AM
    
    
    

FromFileTime メソッドの例を次に示します。


public System.TimeSpan FileAge(long fileCreationTime)
{

   System.DateTime now = System.DateTime.Now;
   try
   {
      System.DateTime fCreationTime =
         System.DateTime.FromFileTime(fileCreationTime);
      System.TimeSpan fileAge = now.Subtract(fCreationTime);
      return fileAge;
   }
   catch (ArgumentOutOfRangeException)
   {
      // fileCreationTime is not valid, so re-throw the exception.
      throw;
   }
}


Windows Phone OS

サポート: 8.0, 7.1, 7.0

表示:
© 2015 Microsoft