Partager via


DateTime.FromFileTime(Int64) Méthode

Définition

Convertit l’heure de fichier Windows spécifiée en heure locale équivalente.

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

Paramètres

fileTime
Int64

Heure d’un fichier Windows exprimée en cycles.

Retours

Objet qui représente l’équivalent de l’heure locale de la date et de l’heure représentées par le fileTime paramètre.

Exceptions

fileTime est inférieur à 0 ou représente une heure supérieure à DateTime.MaxValue.

Exemples

L’exemple suivant illustre la FromFileTime méthode.

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

Remarques

Une heure de fichier Windows est une valeur 64 bits qui représente le nombre d’intervalles de 100 nanosecondes qui se sont écoulés depuis 12:00 minuit, le 1er janvier 1601 A.D. (C.E.) Temps universel coordonné (UTC). Windows utilise une heure de fichier pour enregistrer lorsqu’une application crée, accède ou écrit dans un fichier.

Le fileTime paramètre spécifie une heure de fichier exprimée en cycles de 100 nanosecondes.

À compter de .NET Framework version 2.0, la valeur de retour est une DateTime propriété dont Kind la propriété est DateTimeKind.Local.

Notes pour les appelants

En règle générale, la FromFileTime(Int64) méthode restaure une DateTime valeur enregistrée par la ToFileTime() méthode. Toutefois, les deux valeurs peuvent différer dans les conditions suivantes :

  • Si la sérialisation et la désérialisation de la DateTime valeur se produisent dans différents fuseaux horaires. Par exemple, si une DateTime valeur avec une heure de 12h30 dans le fuseau horaire est sérialisée aux États-Unis, puis désérialisée dans le fuseau horaire américain du Pacifique, la valeur d’origine de 12:30 P.M. est ajustée à 9:30 A.M. pour refléter la différence entre les deux fuseaux horaires.

  • Si la DateTime valeur sérialisée représente une heure non valide dans le fuseau horaire local. Dans ce cas, la ToFileTime() méthode ajuste la valeur restaurée DateTime afin qu’elle représente une heure valide dans le fuseau horaire local.

    Par exemple, la transition entre l’heure standard et l’heure d’été se produit dans le fuseau horaire américain du Pacifique le 14 mars 2010, à 2 h 00, lorsque le temps avance d’une heure à 3 h 00. Cet intervalle d’heure est une heure non valide, autrement dit un intervalle de temps qui n’existe pas dans ce fuseau horaire. L’exemple suivant montre que lorsqu’une heure comprise dans cette plage est convertie en valeur entière longue par la ToFileTime() méthode, puis restaurée par la FromFileTime(Int64) méthode, la valeur d’origine est ajustée pour devenir une heure valide. Vous pouvez déterminer si une valeur de date et d’heure particulière peut être soumise à une modification en la transmettant à la IsInvalidTime(DateTime) méthode, comme l’illustre l’exemple.

    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
    

S’applique à

Voir aussi