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

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

Importante

En algunos casos, el DateTime valor devuelto por FromBinary el método no es idéntico al valor DateTime ToBinary original proporcionado al 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, vea la sección siguiente, "ajuste de 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 coordinada ajustada a la zona horaria local, se representa DateTime mediante una Kind estructura cuya propiedad tiene Localel valor.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 valor local DateTime de la representación binaria generada por el ToBinary método, el FromBinary método puede ajustar el valor que se ha creado de forma 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 el ToBinary método DateTime serializa un objeto local en una zona horaria y, a continuación, se deserializa en una zona horaria diferente mediante el FromBinary método, la hora local representada por el DateTime objeto resultante se ajusta automáticamente. a 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 ejecuta en el La zona horaria del Pacífico ToBinary usa el método para DateTime convertir ese objeto en 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 ejecuta en EE. UU. La zona horaria oriental usa FromBinary el método para convertir el valor binario en DateTime un nuevo 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 del nuevo DateTime objeto es 6 p.m., que representa el mismo momento en el tiempo que las 3 p.m. originalesThe value of the new DateTime object is 6 P.M., which represents the same point in time as the original 3 P.M. , pero se ajusta a la hora local en la zona horaria oriental.value, but is adjusted to local time in the Eastern Time zone.

  • Si la representación binaria de un DateTime valor local representa una hora no válida en la zona horaria local del sistema en FromBinary el que se llama a, la hora se ajusta para que sea válida.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, la transición del horario estándar al horario de verano se produce en el Zona horaria del Pacífico el 14 de marzo de 2010, a las 2:00 A.M., cuando el tiempo avanza una hora, a 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. En el ejemplo siguiente se muestra que cuando una hora comprendida dentro de este intervalo se convierte en un valor binario por el ToBinary método y, a continuación, se restaura mediante el FromBinary método, el valor original se ajusta para convertirse en 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 un determinado valor de fecha y hora puede estar sujeto a una modificación pasándolo al TimeZoneInfo.IsInvalidTime método, como se muestra en el ejemplo.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 la versión 2,0 de .NET Framework DateTime , una estructura consta de un campo tipo privado, que indica si el valor de tiempo especificado se basa en la hora local, en la hora universal coordinada (UTC) o en ninguna, y en un campo de TICs privado, que contiene el número de TICs de 100 nanosegundos que especifican 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. Se puede tener acceso al campo ticks con la Ticks propiedad y se puede tener acceso al campo Kind 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 del .NET Framework 2,0, si serializaba un DateTime objeto manualmente en lugar de usar una interfaz de serialización System.Runtime.Serialization.ISerializablecomo, solo necesita serializar los datos de las marcas de paso en la 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 debe serializar los datos de tipo.Starting with version 2.0, you must also serialize the Kind data.

Se aplica a

Consulte también: