Bagikan melalui


DateTime.ToFileTime Metode

Definisi

Mengonversi nilai objek saat ini DateTime ke waktu file Windows.

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

Mengembalikan

Nilai objek saat ini DateTime dinyatakan sebagai waktu file Windows.

Pengecualian

Waktu file yang dihasilkan akan mewakili tanggal dan waktu sebelum 12:00 tengah malam 1 Januari 1601 C.E. UTC.

Contoh

Contoh berikut menunjukkan ToFileTime metode .

open System.IO

printfn "Enter the file path:"
let filePath = stdin.ReadLine()

if File.Exists filePath then
    let fileCreationDateTime =
        File.GetCreationTime filePath

    let fileCreationFileTime = fileCreationDateTime.ToFileTime()

    printfn $"{fileCreationDateTime} in file time is {fileCreationFileTime}."

else
    printfn $"{filePath} is an invalid file"
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

Keterangan

Waktu file Windows adalah nilai 64-bit yang menunjukkan jumlah interval 100 nanodetik yang telah berlalu sejak 12:00 tengah malam, 1 Januari 1601 A.D. (C.E.) Waktu Universal Terkoordinasi (UTC). Windows menggunakan waktu file untuk merekam ketika aplikasi membuat, mengakses, atau menulis ke file.

Metode ini ToFileTime menggunakan Kind properti untuk menentukan apakah objek saat ini DateTime adalah waktu lokal, waktu UTC, atau jenis waktu yang tidak ditentukan, yang diperlakukan sebagai waktu lokal.

Catatan Bagi Pemanggil

Biasanya, FromFileTime(Int64) metode memulihkan DateTime nilai yang disimpan oleh ToFileTime() metode . Namun, kedua nilai mungkin berbeda dalam kondisi berikut:

  • Jika serialisasi dan deserialisasi DateTime nilai terjadi di zona waktu yang berbeda. Misalnya, jika DateTime nilai dengan waktu 12:30 P.M. di zona Waktu Timur AS diserialisasikan, dan kemudian dideserialisasi di zona Waktu Pasifik AS, nilai asli 12:30 P.M. disesuaikan menjadi 09:30 A.M. untuk mencerminkan perbedaan antara dua zona waktu.

  • DateTime Jika nilai yang diserialisasikan mewakili waktu yang tidak valid di zona waktu lokal. Dalam hal ini, ToFileTime() metode menyesuaikan nilai yang dipulihkan DateTime sehingga mewakili waktu yang valid di zona waktu lokal.

    Misalnya, transisi dari waktu standar ke waktu musim panas terjadi di zona Waktu Pasifik A.S. pada 14 Maret 2010, pukul 02.00, ketika waktu maju satu jam, menjadi 03:00 A.M. Interval jam ini adalah waktu yang tidak valid, yaitu, interval waktu yang tidak ada di zona waktu ini. Contoh berikut menunjukkan bahwa ketika waktu yang termasuk dalam rentang ini dikonversi ke nilai bilangan bulat panjang dengan ToFileTime() metode dan kemudian dipulihkan oleh FromFileTime(Int64) metode , nilai asli disesuaikan untuk menjadi waktu yang valid. Anda dapat menentukan apakah nilai tanggal dan waktu tertentu mungkin tunduk pada modifikasi dengan meneruskannya ke IsInvalidTime(DateTime) metode , seperti yang diilustrasikan contohnya.

    using System;
    
    public class Example
    {
       public static void Main()
       {
          DateTime date1 = new DateTime(2010, 3, 14, 2, 30, 00);
          Console.WriteLine("Invalid Time: {0}",
                            TimeZoneInfo.Local.IsInvalidTime(date1));
          long ft = date1.ToFileTime();
          DateTime date2 = DateTime.FromFileTime(ft);
          Console.WriteLine("{0} -> {1}", date1, date2);
       }
    }
    // The example displays the following output:
    //       Invalid Time: True
    //       3/14/2010 2:30:00 AM -> 3/14/2010 3:30:00 AM
    
    open System
    
    let date1 = DateTime(2010, 3, 14, 2, 30, 00)
    printfn $"Invalid Time: {TimeZoneInfo.Local.IsInvalidTime date1}"
    
    let ft = date1.ToFileTime()
    let date2 = DateTime.FromFileTime ft
    printfn $"{date1} -> {date2}"
    
    // The example displays the following output:
    //       Invalid Time: True
    //       3/14/2010 2:30:00 AM -> 3/14/2010 3:30:00 AM
    
    Module Example
       Public Sub Main()
          Dim date1 As New DateTime(2010, 3, 14, 2, 30, 00)
          Console.WriteLine("Invalid Time: {0}", TimeZoneInfo.Local.IsInvalidTime(date1))
          Dim ft As Long = date1.ToFileTime()
          Dim date2 As DateTime = DateTime.FromFileTime(ft)
          Console.WriteLine("{0} -> {1}", date1, date2) 
       End Sub
    End Module
    ' The example displays the following output:
    '       Invalid Time: True
    '       3/14/2010 2:30:00 AM -> 3/14/2010 3:30:00 AM
    

Berlaku untuk

Lihat juga