DateTime.ToFileTime Metodo

Definizione

Converte il valore dell'oggetto DateTime corrente in un'ora di un file di Windows.

C#
public long ToFileTime ();

Restituisce

Int64

Valore dell'oggetto DateTime corrente espresso come un'ora di un file di Windows.

Eccezioni

L'ora del file risultante rappresenterebbe una data e un'ora antecedenti alle 0.00 UTC del 1° gennaio 1601. UTC.

Esempio

Nell'esempio seguente viene illustrato il ToFileTime metodo.

C#
static void Main(string[] args)
{
    System.Console.WriteLine("Enter the file path:");
    string filePath = System.Console.ReadLine();

    if (System.IO.File.Exists(filePath)) {
        System.DateTime fileCreationDateTime =
            System.IO.File.GetCreationTime(filePath);

        long fileCreationFileTime = fileCreationDateTime.ToFileTime();

        System.Console.WriteLine("{0} in file time is {1}.",
                                 fileCreationDateTime,
                                 fileCreationFileTime);
    }
    else {
        System.Console.WriteLine("{0} is an invalid file", filePath);
    }
}

Commenti

Un'ora del file Windows è un valore a 64 bit che rappresenta il numero di intervalli di 100 nanosecondi trascorsi dalla mezzanotte delle 12.00 del 1° gennaio 1601 d.C. (C.E.) Coordinated Universal Time (UTC). Windows un tempo file per registrare quando un'applicazione crea, accede o scrive in un file.

Il metodo usa la proprietà per determinare se l'oggetto corrente è un'ora locale, un'ora UTC o un tipo di ora non specificato che viene considerato come ora ToFileTime Kind DateTime locale.

Note per i chiamanti

In genere, FromFileTime(Int64) il metodo ripristina DateTime un valore salvato dal metodo ToFileTime() . Tuttavia, i due valori possono differire nelle condizioni seguenti:

  • Se la serializzazione e la deserializzazione del DateTime valore si verificano in fusi orari diversi. Ad esempio, se un DateTime valore con un'ora di 12:30 P.M. nel fuso orario fuso orientale degli Stati Uniti viene serializzato e quindi deserializzato nel fuso orario del Pacifico degli Stati Uniti, il valore originale delle 12:30 viene regolato alle 9:30 per riflettere la differenza tra i due fusi orari.

  • Se il DateTime valore serializzato rappresenta un'ora non valida nel fuso orario locale. In questo caso, il metodo modifica il valore ripristinato in modo che rappresenti ToFileTime() DateTime un'ora valida nel fuso orario locale.

Ad esempio, la transizione dall'ora solare all'ora legale si verifica nel fuso orario del Pacifico degli Stati Uniti il 14 marzo 2010, alle 2:00, quando l'ora avanza di un'ora, alle 3:00 Questo intervallo di ore non è valido, ad esempio un intervallo di tempo che non esiste in questo fuso orario. Nell'esempio seguente viene illustrato che quando un'ora che rientra in questo intervallo viene convertita in un valore long integer dal metodo e quindi ripristinata dal metodo , il valore originale viene modificato in modo da diventare un'ora ToFileTime() FromFileTime(Int64) valida. È possibile determinare se un determinato valore di data e ora può essere soggetto a modifiche passandolo al metodo IsInvalidTime(DateTime) , come illustrato nell'esempio.

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

Si applica a

Prodotto Versioni
.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
.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
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Vedi anche