DateTime.FromFileTime(Int64) Metoda

Definicja

Konwertuje określony czas pliku systemu Windows na równoważny czas lokalny.

C#
public static DateTime FromFileTime(long fileTime);

Parametry

fileTime
Int64

Czas pliku systemu Windows wyrażony w kleszczach.

Zwraca

Obiekt reprezentujący lokalny odpowiednik czasu daty i godziny reprezentowany fileTime przez parametr .

Wyjątki

fileTime wartość jest mniejsza niż 0 lub reprezentuje godzinę większą niż DateTime.MaxValue.

Przykłady

W poniższym przykładzie pokazano metodę FromFileTime .

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

Uwagi

Czas pliku systemu Windows to wartość 64-bitowa, która reprezentuje liczbę interwałów 100-nanosekundowych, które upłynęły od 12:00 północy, 1 stycznia 1601 R. (C.E.) Uniwersalny czas koordynowany (UTC). System Windows wykorzystuje czas pliku do rejestrowania informacji o tym, kiedy aplikacja tworzy, uzyskuje dostęp do zapisuje do pliku.

Parametr fileTime określa czas pliku wyrażony w 100-nanosekundowych kleszczach.

Począwszy od .NET Framework w wersji 2.0, zwracana wartość jest właściwością , której DateTimeKind właściwość to DateTimeKind.Local.

Uwagi dotyczące wywoływania

Zazwyczaj FromFileTime(Int64) metoda przywraca wartość zapisaną DateTime przez metodę ToFileTime() . Jednak te dwie wartości mogą się różnić w następujących warunkach:

  • Jeśli serializacja i deserializacja DateTime wartości występują w różnych strefach czasowych. Na przykład, jeśli DateTime wartość o godzinie 12:30 w strefie czasowej wschodniej USA jest serializowana, a następnie deserializowana w strefie czasowej Pacyfik USA, pierwotna wartość 12:30 pm jest dostosowana do 9:30 rano, aby odzwierciedlić różnicę między dwiema strefami czasowymi.

  • DateTime Jeśli wartość serializowana reprezentuje nieprawidłowy czas w lokalnej strefie czasowej. W tym przypadku ToFileTime() metoda dostosowuje przywróconą DateTime wartość tak, aby reprezentuje prawidłowy czas w lokalnej strefie czasowej.

    Na przykład przejście od czasu standardowego do czasu letniego odbywa się w strefie czasowej Pacyfik USA 14 marca 2010 r., o godzinie 2:00, kiedy czas upływa o jedną godzinę, do godziny 3:00 Ten interwał godziny jest nieprawidłowym czasem, czyli interwałem czasu, który nie istnieje w tej strefie czasowej. W poniższym przykładzie pokazano, że gdy czas, który mieści się w tym zakresie, jest konwertowany na wartość długiej liczby całkowitej przez ToFileTime() metodę, a następnie jest przywracany przez FromFileTime(Int64) metodę, oryginalna wartość jest dostosowywana w celu uzyskania prawidłowego czasu. Można określić, czy określona wartość daty i godziny może podlegać modyfikacji, przekazując ją do IsInvalidTime(DateTime) metody, jak pokazano w przykładzie.

    C#
    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
    

Dotyczy

Produkt Wersje
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Zobacz też