导出 (0) 打印
全部展开
信息
您所需的主题如下所示。但此主题未包含在此库中。

DateTime.FromFileTime 方法

2013/12/13

将指定的 Windows 文件时间转换为等效的本地时间。

Namespace:  System
程序集:  mscorlib(位于 mscorlib.dll 中)

public static DateTime FromFileTime(
	long fileTime
)

参数

fileTime
类型: System.Int64
以计时周期表示的 Windows 文件时间。

返回值

类型: System.DateTime
一个对象,表示等效于由 fileTime 参数表示的日期和时间的本地时间。

异常条件
ArgumentOutOfRangeException

fileTime 小于零或表示大于 DateTime.MaxValue 的时间。

Windows 文件时间是一个 64 位值,它表示自协调世界时 (UTC) 公元 (C.E.) 1601 年 1 月 1 日午夜 12:00 以来已经过的以 100 纳秒为间隔的间隔数。Windows 使用文件时间记录应用程序创建、访问或写入文件的时间。

fileTime 参数指定以 100 纳秒计时周期为单位表示的文件时间。

返回值为一个 DateTime,其 Kind 属性为 DateTimeKind.Local

对调用者的说明

通常,FromFileTime 方法还原由 ToFileTime 方法保存的 DateTime 值。但是,在以下情况下,这两个值可能不同:

  • 如果 DateTime 值的序列化和反序列化发生在不同的时区。例如,如果 DateTime 值(美国东部时区时间 12:30 PM)被序列化,然后在美国太平洋时区被反序列化,原始值 12:30 PM 将被调整为 9:30 AM,以反映两个时区的不同。

  • 如果序列化的 DateTime 值表示本地时区中的无效时间。在这种情况下,ToFileTime 方法调整还原的 DateTime 值,以使它表示本地时区的有效时间。

    例如,从标准时间到夏时制的切换在美国太平洋时区的 2010 年 3 月 14 日凌晨 2:00 发生,此时时间前进一个小时,成为凌晨 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

Windows Phone

显示:
© 2015 Microsoft