DateTime.ToBinary DateTime.ToBinary DateTime.ToBinary DateTime.ToBinary Method

Definición

Serializa el objeto DateTime actual a un valor binario de 64 bits que se puede usar después para volver a crear el objeto DateTime.Serializes the current DateTime object to a 64-bit binary value that subsequently can be used to recreate the DateTime object.

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

Devoluciones

Entero con signo de 64 bits que codifica las propiedades Kind y Ticks.A 64-bit signed integer that encodes the Kind and Ticks properties.

Comentarios

Use la ToBinary método para convertir el valor del elemento actual DateTime objeto a un valor binario.Use the ToBinary method to convert the value of the current DateTime object to a binary value. Posteriormente, usar el valor binario y el FromBinary método para volver a crear el original DateTime objeto.Subsequently, use the binary value and the FromBinary method to recreate the original DateTime object.

Importante

En algunos casos, el DateTime valor devuelto por la FromBinary método no es idéntico al original DateTime valor proporcionado a la ToBinary método.In some cases, the DateTime value returned by the FromBinary method is not identical to the original DateTime value supplied to the ToBinary method. Para obtener más información, consulte la sección siguiente, "Ajuste de la hora Local".For more information, see the next section, "Local Time Adjustment".

Ajuste de la hora localLocal Time Adjustment

Una hora local, que es una hora Universal ajustada a la zona horaria local, se representa mediante un DateTime estructura cuyo Kind propiedad tiene el valor Local.A local time, which is a Coordinated Universal Time adjusted to the local time zone, is represented by a DateTime structure whose Kind property has the value Local. Al restaurar un local DateTime valor de la representación binaria producidos por la ToBinary método, el FromBinary método puede ajustar el valor ha vuelto a crear para que no sea igual al valor original.When restoring a local DateTime value from the binary representation that is produced by the ToBinary method, the FromBinary method may adjust the recreated value so that it is not equal to the original value. Esta desincronización puede aparecer bajo las condiciones siguientes:This can occur under the following conditions:

  • Si una variable local DateTime el objeto se serializa en una zona horaria por la ToBinary método y, a continuación, se deserializa en una zona horaria diferente mediante la FromBinary método, la hora local representado por resultante DateTime automáticamente se ajusta el objeto en la segunda zona horaria.If a local DateTime object is serialized in one time zone by the ToBinary method, and then deserialized in a different time zone by the FromBinary method, the local time represented by the resulting DateTime object is automatically adjusted to the second time zone.

    Por ejemplo, considere un DateTime objeto que representa una hora local de 3 P.M.For example, consider a DateTime object that represents a local time of 3 P.M. Una aplicación que se está ejecutando en los Estados Unidos. Usa la zona horaria del Pacífico el ToBinary método para convertir todo esto DateTime objeto a un valor binario.An application that is executing in the U.S. Pacific Time zone uses the ToBinary method to convert that DateTime object to a binary value. Otra aplicación que se está ejecutando en los Estados Unidos. Zona horaria del este usa el FromBinary método para convertir el valor binario en un nuevo DateTime objeto.Another application that is executing in the U.S. Eastern Time zone uses the FromBinary method to convert the binary value to a new DateTime object. El valor de la nueva DateTime objeto es 6 p. M., que representa el mismo momento en el tiempo que el original 3 P.M.The value of the new DateTime object is 6 P.M., which represents the same point in time as the original 3 P.M. valor, pero se ajusta a la hora local en la zona horaria del este.value, but is adjusted to local time in the Eastern Time zone.

  • Si la representación binaria de una variable local DateTime valor representa una hora no válida en la zona horaria local del sistema en el que FromBinary es llama, la hora se ajusta para que sea válido.If the binary representation of a local DateTime value represents an invalid time in the local time zone of the system on which FromBinary is called, the time is adjusted so that it is valid.

    Por ejemplo, se produce la transición desde el horario estándar al horario de verano en Estados Unidos Zona horaria del Pacífico de 14 de marzo de 2010, a las 2:00 A.M., cuando la hora se adelanta una hora, a las 3:00 A.M.For example, the transition from standard time to daylight saving time occurs in the U.S. Pacific Time zone on March 14, 2010, at 2:00 A.M., when the time advances by one hour, to 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.This hour interval is an invalid time, that is, a time interval that does not exist in this time zone. El ejemplo siguiente se muestra que cuando una hora que se encuentra dentro de este intervalo se convierte en un valor binario mediante el ToBinary método y, a continuación, se restaura por la FromBinary método, el valor original se ajusta para ser una hora válida.The following example shows that when a time that falls within this range is converted to a binary value by the ToBinary method and is then restored by the FromBinary method, the original value is adjusted to become a valid time. Puede determinar si una fecha determinada y el valor de tiempo pueden estar sujeto a modificación pasándolo a la TimeZoneInfo.IsInvalidTime método, como en el ejemplo se muestra.You can determine whether a particular date and time value may be subject to modification by passing it to the TimeZoneInfo.IsInvalidTime method, as the example illustrates.

    using System;
    
    public class Example
    {
       public static void Main()
       {
          DateTime localDate = new DateTime(2010, 3, 14, 2, 30, 0, DateTimeKind.Local);
          long binLocal = localDate.ToBinary();
          if (TimeZoneInfo.Local.IsInvalidTime(localDate))
             Console.WriteLine("{0} is an invalid time in the {1} zone.", 
                               localDate, 
                               TimeZoneInfo.Local.StandardName);
    
          DateTime localDate2 = DateTime.FromBinary(binLocal);
          Console.WriteLine("{0} = {1}: {2}", 
                            localDate, localDate2, localDate.Equals(localDate2));
       }
    }
    // The example displays the following output:
    //    3/14/2010 2:30:00 AM is an invalid time in the Pacific Standard Time zone.
    //    3/14/2010 2:30:00 AM = 3/14/2010 3:30:00 AM: False
    
    Module Example
       Public Sub Main()
          Dim localDate As Date = DateTime.SpecifyKind(#03/14/2010 2:30AM#, DateTimeKind.Local)
          Dim binLocal As Long = localDate.ToBinary()
          If TimeZoneInfo.Local.IsInvalidTime(localDate) Then
             Console.WriteLine("{0} is an invalid time in the {1} zone.", _
                               localDate, _
                               TimeZoneInfo.Local.StandardName)
          End If
          Dim localDate2 As Date = DateTime.FromBinary(binLocal)
          Console.WriteLine("{0} = {1}: {2}", _
                            localDate, localDate2, localDate.Equals(localDate2))
       End Sub
    End Module
    ' The example displays the following output:
    '    3/14/2010 2:30:00 AM is an invalid time in the Pacific Standard Time zone.
    '    3/14/2010 2:30:00 AM = 3/14/2010 3:30:00 AM: False
    

Consideraciones sobre la versiónVersion Considerations

A partir de .NET Framework versión 2.0, un DateTime estructura consta de un campo de tipo privado, que indica si el valor de tiempo especificado se basa en la hora local, hora Universal coordinada (UTC) o ninguna de ellas y un campo privado de tics, lo que contiene el número de pasos de 100 nanosegundos que especifique una fecha y hora.Starting with the .NET Framework version 2.0, a DateTime structure consists of a private Kind field, which indicates whether the specified time value is based on local time, Coordinated Universal Time (UTC), or neither, and a private Ticks field, which contains the number of 100-nanosecond ticks that specify a date and time. El campo Ticks puede obtenerse con el Ticks propiedad y el campo de tipo se pueden acceder con la Kind propiedad.The Ticks field can be accessed with the Ticks property and the Kind field can be accessed with the Kind property.

Antes de .NET Framework 2.0, si serializa un DateTime objeto manualmente en lugar de usar una interfaz de serialización como System.Runtime.Serialization.ISerializable, solo necesario para serializar los datos de ciclos en el DateTime estructura.Prior to the .NET Framework 2.0, if you serialized a DateTime object manually instead of using a serialization interface such as System.Runtime.Serialization.ISerializable, you only needed to serialize the Ticks data in the DateTime structure. A partir de la versión 2.0, también se deben serializar los datos de tipo.Starting with version 2.0, you must also serialize the Kind data.

Se aplica a

Consulte también: