Freigeben über


DateTime.FromFileTime(Int64) Methode

Definition

Konvertiert die angegebene Windows-Dateizeit in eine entsprechende Ortszeit.

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

Parameter

fileTime
Int64

Eine Windows-Dateizeit in Ticks.

Gibt zurück

Ein Objekt, das die Ortszeit darstellt, die der Datums- und Uhrzeitangabe entspricht, die durch den fileTime-Parameter dargestellt wird.

Ausnahmen

fileTime ist kleiner als 0 oder stellt eine Zeit größer als DateTime.MaxValue dar.

Beispiele

Das folgende Beispiel veranschaulicht die FromFileTime Methode.

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;
   }
}
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

Hinweise

Eine Windows-Dateizeit ist ein 64-Bit-Wert, der die Anzahl von 100 Nanosekundenintervallen darstellt, die seit 12:00 Uhr, 1. Januar 1601 n. Chr. (C.E.) verstrichen sind. Koordinierte Weltzeit (UTC). Windows verwendet eine Dateizeit, um aufzuzeichnen, wann eine Anwendung eine Datei erstellt, darauf zugreift oder in diese schreibt.

Der fileTime Parameter gibt eine Dateizeit an, die in 100-Nanosekunden-Ticks ausgedrückt wird.

Ab .NET Framework Version 2.0 ist der Rückgabewert ein DateTime Wert, dessen Kind Eigenschaft istDateTimeKind.Local.

Hinweise für Aufrufer

Normalerweise stellt die FromFileTime(Int64) -Methode einen DateTime Wert wieder her, der von der ToFileTime() -Methode gespeichert wurde. Die beiden Werte können sich jedoch unter den folgenden Bedingungen unterscheiden:

  • Wenn die Serialisierung und Deserialisierung des Werts DateTime in verschiedenen Zeitzonen erfolgen. Wenn beispielsweise ein DateTime Wert mit einer Zeit von 12:30 Uhr in der östlichen Zeitzone USA serialisiert und dann in der us-pazifischen Zeitzone deserialisiert wird, wird der ursprüngliche Wert von 12:30 P.M. auf 9:30 A.M. angepasst, um den Unterschied zwischen den beiden Zeitzonen widerzuspiegeln.

  • Wenn der DateTime serialisierte Wert eine ungültige Zeit in der lokalen Zeitzone darstellt. In diesem Fall passt die ToFileTime() Methode den wiederhergestellten DateTime Wert so an, dass er eine gültige Zeit in der lokalen Zeitzone darstellt.

    Beispielsweise erfolgt der Übergang von der Standardzeit zur Sommerzeit in der US Pacific Time Zone am 14. März 2010 um 2:00 Uhr, wenn die Zeit um eine Stunde auf 3:00 Uhr a.M. Dieses Stundenintervall ist eine ungültige Zeit, d. h. ein Zeitintervall, das in dieser Zeitzone nicht vorhanden ist. Das folgende Beispiel zeigt, dass der ursprüngliche Wert angepasst wird, wenn eine Zeit, die in diesen Bereich fällt, von der ToFileTime() -Methode in einen langen ganzzahligen Wert konvertiert und dann von der FromFileTime(Int64) -Methode wiederhergestellt wird. Sie können bestimmen, ob ein bestimmter Datums- und Uhrzeitwert geändert werden kann, indem Sie ihn an die IsInvalidTime(DateTime) -Methode übergeben, wie das Beispiel veranschaulicht.

    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
    

Gilt für:

Weitere Informationen