DateTime.FromFileTime(Int64) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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 AMopen 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 AMModule 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