Compartir vía


DateTime.FromFileTime(Int64) Método

Definición

Convierte la hora de archivo de Windows especificada en una hora local equivalente.

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

Parámetros

fileTime
Int64

Hora de un archivo de Windows, expresada en pasos.

Devoluciones

Objeto que representa la hora local equivalente a la fecha y hora representadas por el parámetro fileTime.

Excepciones

fileTime es menor que 0 o representa una hora mayor que DateTime.MaxValue.

Ejemplos

En el siguiente ejemplo se muestra el FromFileTime método.

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

Comentarios

Un tiempo de archivo de Windows es un valor de 64 bits que representa el número de intervalos de 100 nanosegundos que han transcurrido desde la medianoche del 12:00, 1 de enero de 1601 A.D. (C.E.) Hora universal coordinada (UTC). Windows usa un tiempo de archivo para registrar cuando una aplicación crea, accede o escribe en un archivo.

El fileTime parámetro especifica un tiempo de archivo expresado en tics de 100 nanosegundos.

A partir de .NET Framework versión 2.0, el valor devuelto es una DateTime cuya Kind propiedad es DateTimeKind.Local.

Notas a los autores de las llamadas

Normalmente, el FromFileTime(Int64) método restaura un DateTime valor guardado por el ToFileTime() método . Sin embargo, los dos valores pueden diferir en las condiciones siguientes:

  • Si la serialización y deserialización del DateTime valor se producen en diferentes zonas horarias. Por ejemplo, si se serializa un DateTime valor con una hora de 12:30 p.m. en la zona horaria del este de EE. UU. y, a continuación, se deserializa en la zona horaria del Pacífico de EE. UU., el valor original de 12:30 P.M. se ajusta a 9:30 A.M. para reflejar la diferencia entre las dos zonas horarias.

  • Si el DateTime valor que se serializa representa una hora no válida en la zona horaria local. En este caso, el ToFileTime() método ajusta el valor restaurado DateTime para que represente una hora válida en la zona horaria local.

    Por ejemplo, la transición del horario estándar al horario de verano se produce en la zona horaria del Pacífico de EE. UU. el 14 de marzo de 2010, a las 2:00 a.m., cuando la hora avanza en una hora, a las 3:00 a.m. Este intervalo de hora es un tiempo no válido, es decir, un intervalo de tiempo que no existe en esta zona horaria. En el ToFileTime() ejemplo siguiente se muestra que, cuando el método convierte un valor entero largo dentro de este intervalo y, a continuación, se restaura mediante el FromFileTime(Int64) método , el valor original se ajusta para convertirse en un tiempo válido. Puede determinar si un valor de fecha y hora determinado puede estar sujeto a modificación pasandolo al IsInvalidTime(DateTime) método , como se muestra en el ejemplo.

    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
    

Se aplica a

Consulte también