Sdílet prostřednictvím


DateTime.FromFileTime(Int64) Metoda

Definice

Převede zadaný čas souboru systému Windows na ekvivalentní místní čas.

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

Parametry

fileTime
Int64

Čas souboru systému Windows vyjádřený v zaškrtávkách.

Návraty

Objekt, který představuje místní časový ekvivalent data a času reprezentovaných parametrem fileTime .

Výjimky

fileTime je menší než 0 nebo představuje čas větší než DateTime.MaxValue.

Příklady

Následující příklad ukazuje metodu FromFileTime .

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

Poznámky

Čas souboru windows je 64bitová hodnota, která představuje počet 100 nanosekundových intervalů, které uplynuly od 12:00 půlnoci 1. ledna 1601 n. n. Koordinovaný světový čas (UTC) Systém Windows používá k záznamu okamžiku, kdy aplikace vytvoří, přistoupí nebo zapíše do souboru, čas souboru.

Parametr fileTime určuje čas souboru vyjádřený 100 nanosekundami.

Počínaje rozhraním .NET Framework verze 2.0 je návratová hodnota, DateTime jejíž Kind vlastnost je DateTimeKind.Local.

Poznámky pro volající

Metoda obvykle obnoví hodnotu, FromFileTime(Int64) která byla uložena metodouToFileTime().DateTime 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 v americkém východním časovém pásmu serializována a následně deserializována v americkém tichomořském časovém pásmu, původní hodnota 12:30 se upraví na 9:30, aby odrážela rozdíl mezi dvěma časovými pásmy.

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

    Například přechod ze standardního času na letní čas probíhá v americkém tichomořském časovém pásmu 14. března 2010 ve 2:00, kdy se čas posune 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 metodou ToFileTime() a pak je obnoven metodou FromFileTime(Int64) , původní hodnota je upravena tak, aby se stala platným časem. Můžete určit, zda konkrétní hodnota data a času může být změněna tak, že ji IsInvalidTime(DateTime) předáte metodě, jak je znázorněno na 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é