DateTime.FromFileTime(Int64) Metode

Definisi

Mengonversi waktu file Windows yang ditentukan ke waktu lokal yang setara.

public:
 static DateTime FromFileTime(long fileTime);
public static DateTime FromFileTime (long fileTime);
static member FromFileTime : int64 -> DateTime
Public Shared Function FromFileTime (fileTime As Long) As DateTime

Parameter

fileTime
Int64

Waktu file Windows yang dinyatakan dalam tanda centang.

Mengembalikan

Objek yang mewakili waktu lokal yang setara dengan tanggal dan waktu yang diwakili oleh fileTime parameter .

Pengecualian

fileTime kurang dari 0 atau mewakili waktu yang lebih besar dari DateTime.MaxValue.

Contoh

Contoh berikut menunjukkan FromFileTime metode .

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;
   }
}
open System

let fileAge fileCreationTime =
    let now = DateTime.Now
    try
        let fCreationTime =
            DateTime.FromFileTime fileCreationTime
        now.Subtract fCreationTime
    with :? ArgumentOutOfRangeException ->
        // fileCreationTime is not valid, so re-raise the exception.
        reraise ()
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;
    }
}
Public Function FileAge(ByVal fileCreationTime As Long) As System.TimeSpan
   Dim now As System.DateTime
   now = System.DateTime.Now

   Try
      Dim fCreationTime As System.DateTime
      Dim fAge As System.TimeSpan
      fCreationTime = System.DateTime.FromFileTime(fileCreationTime)
      fAge = now.Subtract(fCreationTime)
      Return fAge
   Catch exp As ArgumentOutOfRangeException
      ' fileCreationTime is not valid, so re-throw the exception.
      Throw
   End Try
End Function

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.

Parameter fileTime menentukan waktu file yang dinyatakan dalam tick 100-nanodetik.

Dimulai dengan .NET Framework versi 2.0, nilai yang dikembalikan adalah yang DateTime propertinya Kind adalah DateTimeKind.Local.

Catatan Bagi Pemanggil

Biasanya, FromFileTime(Int64) metode memulihkan DateTime nilai yang disimpan oleh ToFileTime() metode . Namun, kedua nilai tersebut 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 9: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 AS pada 14 Maret 2010, pukul 02.00 WIB, 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 contoh.

    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