DateTime.ToFileTime Methode

Definitie

Converteert de waarde van het huidige DateTime-object naar een Windows bestandstijd.

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

Retouren

De waarde van het huidige DateTime-object uitgedrukt als een Windows bestandstijd.

Uitzonderingen

De resulterende bestandstijd vertegenwoordigt een datum en tijd vóór 12:00 middernacht 1 januari 1601 C.E. UTC.

Voorbeelden

In het volgende voorbeeld ziet u de ToFileTime methode.

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

Opmerkingen

Een Windows bestandstijd is een 64-bits waarde die het aantal intervallen van 100 nanoseconden aangeeft dat is verstreken sinds 12:00 middernacht, 1 januari 1601 A.D. (C.E.) Coordinated Universal Time (UTC). Windows gebruikt een bestandstijd om op te nemen wanneer een toepassing een bestand maakt, opent of schrijft naar een bestand.

De ToFileTime methode gebruikt de Kind eigenschap om te bepalen of het huidige DateTime object een lokale tijd, een UTC-tijd of een niet-opgegeven soort tijd is, die wordt behandeld als een lokale tijd.

Notities voor bellers

Normaal gesproken herstelt de FromFileTime(Int64) methode een DateTime waarde die door de ToFileTime() methode is opgeslagen. De twee waarden kunnen echter verschillen onder de volgende voorwaarden:

  • Als de serialisatie en deserialisatie van de DateTime waarde in verschillende tijdzones plaatsvinden. Als bijvoorbeeld een DateTime waarde met een tijd van 12:30 uur in de tijdzone Vs Eastern Time is geserialiseerd en vervolgens wordt gedeserialiseerd in de Tijdzone van de Verenigde Oceaan, wordt de oorspronkelijke waarde van 12:30 uur aangepast aan 9:30 uur om het verschil tussen de twee tijdzones weer te geven.

  • Als de DateTime waarde die is geserialiseerd een ongeldige tijd in de lokale tijdzone vertegenwoordigt. In dit geval past de methode de ToFileTime() herstelde DateTime waarde aan zodat deze een geldige tijd in de lokale tijdzone vertegenwoordigt.

    De overgang van de standaardtijd naar zomertijd vindt bijvoorbeeld plaats in de Tijdzone Pacific in de Vs op 14 maart 2010 om 2:00 uur, wanneer de tijd met één uur naar 3:00 uur gaat. Dit uurinterval is een ongeldige tijd, dat wil gezegd een tijdsinterval dat niet bestaat in deze tijdzone. In het volgende voorbeeld ziet u dat wanneer een tijd die binnen dit bereik valt, door de ToFileTime() methode wordt geconverteerd naar een lang geheel getal en vervolgens wordt hersteld door de FromFileTime(Int64) methode, de oorspronkelijke waarde wordt aangepast om een geldige tijd te worden. U kunt bepalen of een bepaalde datum- en tijdwaarde kan worden gewijzigd door deze door te geven aan de IsInvalidTime(DateTime) methode, zoals in het voorbeeld wordt geïllustreerd.

    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
    

Van toepassing op

Zie ook