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

Int64

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

Özel durumlar

Sonuçta elde edilen dosya saati, 1 Ocak 1601 C.E. UTC.

Örnekler

Aşağıdaki örnekte yöntemi gösterilmektedir 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 );
   }
}
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 dosyası zamanı, M.S. 1 Ocak 1601, 12:00 gece yarısından itibaren geçen 100 nano saniyelik aralıkların sayısını temsil eden 64 bitlik bir değerdir. (C.E.) 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.

yöntemi, ToFileTime geçerli DateTime nesnenin yerel saat mi, UTC saati mi yoksa yerel saat olarak kabul edilen 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şullarda farklılık gösterebilir:

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

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

Örneğin, ABD Pasifik Saat diliminde 14 Mart 2010, saat 02:00'da standart saatten yaz saatine geçilir ve saatler bir saat ileri alınarak 03:00 yapılır. Bu saat aralığı geçersiz bir zamandır, başka bir deyişle, bu saat diliminde bulunmayan 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ğ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

Şunlara uygulanır

Ayrıca bkz.