Sdílet prostřednictvím


DateTime.ToFileTime Metoda

Definice

Převede hodnotu aktuálního DateTime objektu na čas souboru systému Windows.

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

Návraty

Hodnota aktuálního DateTime objektu vyjádřená jako čas souboru systému Windows.

Výjimky

Výsledný čas souboru by představoval datum a čas před 12:00 půlnocí 1. ledna 1601 C.E. UTC.

Příklady

Následující příklad ukazuje metodu 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

Poznámky

Čas souboru Systému Windows je 64bitová hodnota, která představuje počet intervalů 100 nanosekund, které uplynuly od 12:00 půlnoci, 1. ledna 1601 A.D. (C.E.) Koordinovaný univerzální čas (UTC). Systém Windows používá k zaznamenávání času při vytváření, přístupu nebo zápisu aplikace do souboru.

Metoda ToFileTime používá Kind vlastnost k určení, zda aktuální DateTime objekt je místní čas, čas UTC nebo nespecifikovaný druh času, který je považován za místní čas.

Poznámky pro volající

Metoda obvykle FromFileTime(Int64) obnoví DateTime hodnotu uloženou metodou ToFileTime() . Tyto dvě hodnoty se však mohou lišit za následujících podmínek:

  • Pokud serializace a deserializace DateTime hodnoty dochází v různých časových pásmech. Pokud DateTime je například hodnota s časem 12:30 p.M. v východním časovém pásmu USA serializována a pak deserializována v americkém časovém pásmu Tichomoří, původní hodnota 12:30 P.M. se upraví na 9:30 A.M. tak, aby odrážela rozdíl mezi těmito dvěma časovými pásmy.

  • DateTime Pokud hodnota serializovaná představuje neplatný čas v místním časovém pásmu. V tomto případě ToFileTime() metoda upraví obnovenou DateTime hodnotu tak, aby představovala platný čas v místním časovém pásmu.

    Například přechod ze standardního času na letní čas nastane v americkém tichomořském časovém pásmu 14. března 2010 v 2:00, kdy čas přejde o hodinu do 3:00. Tento hodinový interval je neplatný čas, tj. časový interval, který v tomto časovém pásmu neexistuje. Následující příklad ukazuje, že když je čas, který spadá do tohoto rozsahu, převeden na dlouhou celočíselnou hodnotu ToFileTime() metodou a pak je obnoven metodou FromFileTime(Int64) , původní hodnota je upravena tak, aby se stala platnou dobou. Můžete zjistit, zda konkrétní hodnota data a času může být předmětem úprav, tím, že ji předáte metodě IsInvalidTime(DateTime), jak je znázorněno v příkladu.

    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
    

Platí pro

Viz také