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 P.M. 的原始值。 已調整為 9:30 A.M。 以反映這兩個時區之間的差異。

-如果 DateTime 序列化的值代表本地時區中的無效時間。 在此情況下, ToFileTime() 方法會調整還原的 DateTime 值,使其代表本地時區中的有效時間。

例如,從標準時間到日光節約時間的轉換會在美國太平洋時區于2010年3月14日上午2:00,當時間前進1小時時,到上午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":::

適用於

另請參閱