DateTime.FromFileTime(Int64) Yöntem

Tanım

Belirtilen Windows dosya süresini eşdeğer bir yerel saate dönüştürür.

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

Parametreler

fileTime
Int64

Onay işaretleriyle ifade edilen bir Windows dosya süresi.

Döndürülenler

parametresiyle temsil edilen tarih ve saatin yerel saat eşdeğerini fileTime temsil eden nesne.

Özel durumlar

fileTime 0'dan küçük veya DateTime.MaxValue değerinden büyük bir saati temsil eder.

Örnekler

Aşağıdaki örnekte yöntemi gösterilmektedir FromFileTime .

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

Açıklamalar

Windows dosya süresi, 1 Ocak 1601 M.S. (C.E.) 12:00 gece yarısından bu yana geçen 100 nanosaniyelik aralık sayısını temsil eden 64 bitlik bir değerdir. Eşgüdümlü Evrensel Saat (UTC). Windows, bir uygulamanın bir dosyayı oluşturduğu, ona eriştiği veya yazdığı zamanları kaydetmek için bir dosya zamanı kullanır.

fileTime parametresi, 100 nanosaniyelik değerlerle ifade edilen bir dosya süresini belirtir.

.NET Framework sürüm 2.0'dan başlayarak, dönüş değeri özelliği olan Kind bir DateTime değeridirDateTimeKind.Local.

Arayanlara Notlar

Normalde, FromFileTime(Int64) yöntemi tarafından ToFileTime() kaydedilen bir DateTime değeri geri yükler. Ancak, iki değer aşağıdaki koşullar altında farklılık gösterebilir:

  • Değerin seri hale getirilmesi ve seri durumdan DateTime çıkarılması farklı saat dilimlerinde gerçekleşiyorsa. Örneğin, ABD Doğu Saat diliminde saat 12:30 olan bir DateTime değer seri hale getirilirse ve ardından ABD Pasifik Saat diliminde seri durumdan çıkarılırsa, iki saat dilimi arasındaki farkı yansıtacak şekilde 12:30'un özgün değeri 09:30'a ayarlanır.

  • DateTime Seri hale getirilen değer yerel saat diliminde geçersiz bir saati temsil ediyorsa. Bu durumda yöntemi, ToFileTime() geri yüklenen DateTime değeri yerel saat diliminde geçerli bir saati temsil eden şekilde ayarlar.

    Örneğin, standart saatten yaz saati saatine geçiş, 14 Mart 2010'da saat 02:00'de, saat bir saat ilerlediğinde, 03:00'e kadar ABD Pasifik Saat diliminde gerçekleşir. Bu saat aralığı geçersiz bir saat, yani bu saat diliminde bulunmayan bir zaman aralığı. Aşağıdaki örnekte, bu aralığın içinde kalan bir süre yöntemiyle ToFileTime() uzun bir tamsayı değerine dönüştürüldüğünde ve yöntemi tarafından FromFileTime(Int64) geri yüklendiğinde, özgün değerin geçerli bir saat olacak şekilde ayarlandığı gösterilmektedir. Örnekte gösterildiği gibi belirli bir tarih ve saat değerini yönteme IsInvalidTime(DateTime) geçirerek değişikliğe tabi olup olmayacağını belirleyebilirsiniz.

    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
    

Şunlara uygulanır

Ayrıca bkz.