DateTime.FromFileTime(Int64) Methode

Definitie

Converteert de opgegeven Windows bestandstijd naar een equivalente lokale tijd.

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

Parameters

fileTime
Int64

Een Windows bestandstijd uitgedrukt in tikken.

Retouren

Een object dat het lokale tijd-equivalent vertegenwoordigt van de datum en tijd die wordt vertegenwoordigd door de fileTime parameter.

Uitzonderingen

fileTime is kleiner dan 0 of vertegenwoordigt een tijd die groter is dan DateTime.MaxValue.

Voorbeelden

In het volgende voorbeeld ziet u de FromFileTime methode.

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

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 fileTime parameter specificeert een bestandstijd uitgedrukt in tikken van 100 nanoseconden.

Vanaf de .NET Framework versie 2.0 is de retourwaarde een DateTime waarvan de eigenschap KindDateTimeKind.Local is.

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