Compartir por


DateTime.ToFileTime Método

Definición

Convierte el valor del objeto actual DateTime en una hora de archivo de Windows.

public:
 long ToFileTime();
public long ToFileTime();
member this.ToFileTime : unit -> int64
Public Function ToFileTime () As Long

Devoluciones

Valor del objeto actual DateTime expresado como una hora de archivo de Windows.

Excepciones

La hora del archivo resultante representaría una fecha y hora anteriores a las 12:00 medianoche del 1 de enero de 1601 C.E. UTC.

Ejemplos

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

open System.IO

printfn "Enter the file path:"
let filePath = stdin.ReadLine()

if File.Exists filePath then
    let fileCreationDateTime =
        File.GetCreationTime filePath

    let fileCreationFileTime = fileCreationDateTime.ToFileTime()

    printfn $"{fileCreationDateTime} in file time is {fileCreationFileTime}."

else
    printfn $"{filePath} is an invalid file"
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);
    }
}
Public Shared Sub Main()

   System.Console.WriteLine("Enter the file path:")
   Dim filePath As String
   filePath = System.Console.ReadLine()

   If System.IO.File.Exists(filePath) Then
      Dim fileCreationDateTime As System.DateTime
      fileCreationDateTime = System.IO.File.GetCreationTime(filePath)

      Dim fileCreationFileTime As 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)
   End If
End Sub

Comentarios

Un tiempo de archivo de Windows es un valor de 64 bits que representa el número de intervalos de 100 nanosegundos transcurridos 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 ToFileTime método usa la Kind propiedad para determinar si el objeto actual DateTime es una hora local, una hora UTC o un tipo de hora no especificado, que se trata como una hora 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 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 serializado 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 por una hora, a las 3:00 a.m. Este intervalo de hora es una hora no válida, es decir, un intervalo de tiempo que no existe en esta zona horaria. En el 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 ToFileTime()FromFileTime(Int64) método , el valor original se ajusta para convertirse en una hora válida. Puede determinar si un valor de fecha y hora determinado puede estar sujeto a modificaciones pasandolo al método IsInvalidTime(DateTime), 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