DateTime.FromBinary(Int64) DateTime.FromBinary(Int64) DateTime.FromBinary(Int64) DateTime.FromBinary(Int64) Method

Definizione

Deserializza un valore binario a 64 bit e ricrea un oggetto originale DateTime serializzato.Deserializes a 64-bit binary value and recreates an original serialized DateTime object.

public:
 static DateTime FromBinary(long dateData);
public static DateTime FromBinary (long dateData);
static member FromBinary : int64 -> DateTime
Public Shared Function FromBinary (dateData As Long) As DateTime

Parametri

dateData
Int64 Int64 Int64 Int64

Intero con segno a 64 bit che codifica la proprietà Kind in un campo a 2 bit e la proprietà Ticks in un campo a 62 bit.A 64-bit signed integer that encodes the Kind property in a 2-bit field and the Ticks property in a 62-bit field.

Restituisce

Oggetto equivalente all'oggetto DateTime che è stato serializzato dal metodo ToBinary().An object that is equivalent to the DateTime object that was serialized by the ToBinary() method.

Eccezioni

dateData è minore di MinValue o maggiore di MaxValue.dateData is less than MinValue or greater than MaxValue.

Commenti

Utilizzare il ToBinary metodo per convertire il valore dell'oggetto corrente DateTime in un valore binario.Use the ToBinary method to convert the value of the current DateTime object to a binary value. Successivamente, utilizzare il valore binario e il FromBinary metodo per ricreare l'oggetto DateTime originale.Subsequently, use the binary value and the FromBinary method to recreate the original DateTime object.

Importante

In alcuni casi, il DateTime valore restituito FromBinary dal metodo non è identico al valore ToBinary originale DateTime fornito al metodo.In some cases, the DateTime value returned by the FromBinary method is not identical to the original DateTime value supplied to the ToBinary method. Per ulteriori informazioni, vedere la sezione successiva "regolazione dell'ora locale".For more information, see the next section, "Local Time Adjustment".

Regolazione dell'ora localeLocal Time Adjustment

Un'ora locale, ovvero un'ora UTC (Coordinated Universal Time) regolata per il fuso orario locale DateTime , è Kind rappresentata da una Localstruttura la cui proprietà ha il valore.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. Quando si ripristina un DateTime valore locale dalla rappresentazione binaria generata ToBinary dal metodo, il FromBinary metodo può modificare il valore ricreato in modo che non sia uguale al valore originale.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. Ciò può verificarsi nelle seguenti condizioni:This can occur under the following conditions:

  • Se un oggetto DateTime locale viene serializzato in un fuso orario ToBinary dal metodo e quindi deserializzato in un fuso orario FromBinary diverso dal metodo, l'ora locale rappresentata dall'oggetto risultante DateTime viene regolata automaticamente al secondo fuso orario.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.

    Si consideri, DateTime ad esempio, un oggetto che rappresenta un'ora locale di 3 ore.For example, consider a DateTime object that represents a local time of 3 P.M. Un'applicazione in esecuzione negli Stati Uniti Il fuso orario del Pacifico ToBinary usa il metodo per DateTime convertire l'oggetto in un valore 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. Un'altra applicazione in esecuzione negli Stati Uniti Il fuso orario orientale USA quindi FromBinary il metodo per convertire il valore binario in un DateTime nuovo oggetto.Another application that is executing in the U.S. Eastern Time zone then uses the FromBinary method to convert the binary value to a new DateTime object. Il valore del nuovo DateTime oggetto è 18, che rappresenta lo stesso punto nel tempo delle 15:00 originali.The value of the new DateTime object is 6 P.M., which represents the same point in time as the original 3 P.M. il valore, ma viene regolato nell'ora locale nel fuso orario orientale.value, but is adjusted to local time in the Eastern Time zone.

  • Se la rappresentazione binaria di un DateTime valore locale rappresenta un'ora non valida nel fuso orario locale del sistema in cui FromBinary viene chiamato, l'ora viene modificata in modo che sia valida.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.

    Ad esempio, la transizione dall'ora solare all'ora legale si verifica nel fuso orario del Pacifico del Stati Uniti il 14 marzo 2010, alle 2:00, quando l'ora avanza di un'ora, alle 3:00 A.M.For example, the transition from standard time to daylight saving time occurs in the Pacific Time zone of the United States on March 14, 2010, at 2:00 A.M., when the time advances by one hour, to 3:00 A.M. Questo intervallo di ore è un'ora non valida, ovvero un intervallo di tempo che non esiste in questo fuso orario.This hour interval is an invalid time, that is, a time interval that does not exist in this time zone. Nell'esempio seguente viene illustrato che quando un'ora che rientra in questo intervallo viene convertita in un valore binario ToBinary dal metodo e viene quindi ripristinata FromBinary dal metodo, il valore originale viene regolato in modo da diventare un tempo valido.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. È possibile determinare se un determinato valore di data e ora può essere soggetto a modifiche passandolo al TimeZoneInfo.IsInvalidTime metodo, come illustrato nell'esempio.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
    

Considerazioni sulla versioneVersion Considerations

A partire dalla versione di .NET Framework 2,0, DateTime una struttura è costituita da un campo di tipo privato, che indica se l'ora specificata è l'ora locale, l'ora UTC (Coordinated Universal Time) o nessuna delle due, concatenata a un campo di cicli privati, che contiene il numero di cicli 100-nanosecondi che specificano una data e un'ora.Starting with the .NET Framework version 2.0, a DateTime structure consists of a private Kind field, which indicates whether the specified time is local time, Coordinated Universal Time (UTC), or neither, concatenated to a private Ticks field, which contains the number of 100-nanosecond ticks that specify a date and time. È possibile accedere al numero di cicli con Ticks la proprietà ed è possibile accedere al campo theKind con la Kind proprietà.The number of ticks can be accessed with the Ticks property and theKind field can be accessed with the Kind property.

Prima della .NET Framework 2,0, se un DateTime oggetto è stato serializzato manualmente anziché utilizzare un'interfaccia di serializzazione System.Runtime.Serialization.ISerializable, ad esempio, era necessario serializzare solo i dati dei DateTimecicli in.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 needed to serialize only the Ticks data in the DateTime. A partire da .NET Framework 2,0, è necessario serializzare anche i dati di tipo.Starting with the .NET Framework 2.0, you must also serialize the Kind data.

Si applica a

Vedi anche