DateTime.ToFileTime 方法

定义

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

public:
 long ToFileTime();
public long ToFileTime ();
member this.ToFileTime : unit -> int64
Public Function ToFileTime () As Long

返回

Int64

表示为 Windows 文件时间的当前 DateTime 对象的值。

例外

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

示例

下面的示例演示 ToFileTime 方法。

int main()
{
   System::Console::WriteLine( "Enter the file path:" );
   String^ filePath = System::Console::ReadLine();
   if ( System::IO::File::Exists( filePath ) )
   {
      System::DateTime fileCreationDateTime = System::IO::File::GetCreationTime( filePath );
      __int64 fileCreationFileTime = fileCreationDateTime.ToFileTime();
      System::Console::WriteLine( "{0} in file time is {1}.", fileCreationDateTime, fileCreationFileTime );
   }
   else
   {
      System::Console::WriteLine( "{0} is an invalid file", filePath );
   }
}
static void Main(string[] args)
{
    System.Console.WriteLine("Enter the file path:");
    string filePath = System.Console.ReadLine();

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

        long fileCreationFileTime = fileCreationDateTime.ToFileTime();

        System.Console.WriteLine("{0} in file time is {1}.",
                                 fileCreationDateTime,
                                 fileCreationFileTime);
    }
    else {
        System.Console.WriteLine("{0} is an invalid file", filePath);
    }
}
Public Shared Sub Main()

   System.Console.WriteLine("Enter the file path:")
   Dim filePath As String
   filePath = System.Console.ReadLine()

   If System.IO.File.Exists(filePath) Then
      Dim fileCreationDateTime As System.DateTime
      fileCreationDateTime = System.IO.File.GetCreationTime(filePath)

      Dim fileCreationFileTime As Long
      fileCreationFileTime = fileCreationDateTime.ToFileTime()

      System.Console.WriteLine("{0} in file time is {1}.", _
                               fileCreationDateTime, _
                               fileCreationFileTime)
   Else
      System.Console.WriteLine("{0} is an invalid file", filePath)
   End If
End Sub

注解

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

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

调用方说明

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

-如果值的序列化和反序列化 DateTime 出现在不同的时区中。 例如,如果 DateTime 值的时间为 12:30 P.M。 在美国东部时区,将序列化,然后在美国太平洋12:30 时区中反序列化 调整为凌晨9:30。 来反映两个时区之间的差异。

-如果 DateTime 序列化的值表示本地时区中的无效时间,则为。 在这种情况下, ToFileTime() 方法会调整还原的 DateTime 值,使其表示本地时区中的有效时间。

例如,从标准时间转换到夏令时的时间是在2010年3月14日上午2:00,上午,时间前进一小时,到凌晨3:00 此小时间隔为无效时间,即此时区中不存在的时间间隔。 下面的示例显示,当此范围内的时间由方法转换为长整数值, ToFileTime() 然后通过方法还原时 FromFileTime(Int64) ,原始值将调整为有效时间。 如示例所示,可以通过将特定日期和时间值传递给方法来确定是否可以修改该日期和时间值 IsInvalidTime(DateTime)

::: code language = "csharp" source = "~/samples/snippets/csharp/VS_Snippets_CLR_System/system.datetime.fromfiletime/cs/fromfiletime1.cs" id = "Snippet1":::::: code language = "vb" source = "~/samples/snippets/visualbasic/VS_Snippets_CLR_System/system.datetime.fromfiletime/vb/fromfiletime1.vb" id = "Snippet1":::

适用于

另请参阅