Aracılığıyla paylaş


DateTime.ToFileTime Yöntem

Tanım

Geçerli DateTime nesnenin değerini Windows dosya zamanına dönüştürür.

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

Döndürülenler

Geçerli DateTime nesnenin Windows dosya zamanı olarak ifade edilen değeri.

Özel durumlar

Sonuçta elde edilen dosya saati, 1 Ocak 1601 UTC saat 12:00 gece yarısından önceki bir tarih ve saati temsil eder.

Örnekler

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

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

Açıklamalar

Windows dosya süresi, 12:00 gece yarısı, 1 Ocak 1601 M.S. (C.E.) tarihinden bu yana geçen 100 nanosaniyelik aralıkların sayısını temsil eden 64 bitlik bir değerdir Eşgüdümlü Evrensel Saat (UTC). Windows, bir uygulama bir dosya oluşturduğunda, dosyaya eriştiğinde veya dosyaya yazdığında kaydetmek için bir dosya süresi kullanır.

yöntemi, ToFileTime geçerli DateTime nesnenin yerel saat mi, UTC saati mi yoksa yerel saat olarak ele alınan belirtilmemiş bir saat türü mü olduğunu belirlemek için özelliğini kullanırKind.

Arayanlara Notlar

Normalde yöntemi, 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 oluşuyorsa. Örneğin, ABD Doğu Saat diliminde saat 12:30 olan bir DateTime değer seri hale getirilir 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 mevcut olmayan bir zaman aralığıdır. Aşağıdaki örnekte, bu aralık 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ğerinin IsInvalidTime(DateTime) yöntemine 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.