此页面有用吗?
您对此内容的反馈非常重要。 请告诉我们您的想法。
更多反馈?
1500 个剩余字符
MSDN Library
信息
您所需的主题如下所示。但此主题未包含在此库中。

DateTime.ToFileTime 方法

2013/12/13

将当前 DateTime 对象的值转换为 Windows 文件时间。

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

public long ToFileTime()

返回值

类型: System.Int64
表示为 Windows 文件时间的当前 DateTime 对象的值。

异常条件
ArgumentOutOfRangeException

所生成的文件时间将表示协调世界时公元 1601 年 1 月 1 日午夜 12:00 之前的日期和时间。

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

ToFileTime 方法使用 Kind 属性确定当前 DateTime 对象是本地时间、UTC 时间,还是被视作本地时间的未指定类型的时间。

对调用者的说明

通常,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
    
    
    

下面的示例说明 ToFileTime 方法。


public static void Demo(System.Windows.Controls.TextBlock outputBlock)
{
   outputBlock.Text += "Enter the file path:" + "\n";
   string filePath = System.Console.ReadLine();

   if (System.IO.File.Exists(filePath))
   {
      System.DateTime fileCreationDateTime =
         System.IO.File.GetCreationTime(filePath);

      long fileCreationFileTime = fileCreationDateTime.ToFileTime();

      outputBlock.Text += String.Format("{0} in file time is {1}.",
                         fileCreationDateTime,
                         fileCreationFileTime) + "\n";
   }
   else
   {
      outputBlock.Text += String.Format("{0} is an invalid file", filePath) + "\n";
   }
}


Windows Phone OS

受以下版本支持: 8.0, 7.1, 7.0

Windows Phone

显示:
© 2015 Microsoft