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

Definition

Deserialisiert einen 64-Bit-Binärwert und erstellt ein ursprüngliches serialisiertes DateTime-Objekt neu.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

Parameter

dateData
Int64 Int64 Int64 Int64

Eine 64-Bit-Ganzzahl mit Vorzeichen, die die Kind-Eigenschaft in ein 2-Bit-Feld und die Ticks-Eigenschaft in ein 62-Bit-Feld codiert.A 64-bit signed integer that encodes the Kind property in a 2-bit field and the Ticks property in a 62-bit field.

Gibt zurück

Ein Objekt, das dem DateTime-Objekt entspricht, das von der ToBinary()-Methode serialisiert wurde.An object that is equivalent to the DateTime object that was serialized by the ToBinary() method.

Ausnahmen

dateData ist kleiner als MinValue oder größer als MaxValue.dateData is less than MinValue or greater than MaxValue.

Hinweise

Verwenden Sie ToBinary die-Methode, um den Wert des DateTime aktuellen-Objekts in einen binären Wert zu konvertieren.Use the ToBinary method to convert the value of the current DateTime object to a binary value. Verwenden Sie anschließend den binären Wert und die FromBinary -Methode, um das DateTime ursprüngliche-Objekt erneut zu erstellen.Subsequently, use the binary value and the FromBinary method to recreate the original DateTime object.

Wichtig

In einigen Fällen ist der DateTime von der FromBinary -Methode zurückgegebene Wert nicht mit dem ursprünglichen DateTime Wert identisch, der ToBinary für die-Methode bereitgestellt wird.In some cases, the DateTime value returned by the FromBinary method is not identical to the original DateTime value supplied to the ToBinary method. Weitere Informationen finden Sie im nächsten Abschnitt "lokale Zeitanpassung".For more information, see the next section, "Local Time Adjustment".

Lokale ZeitanpassungLocal Time Adjustment

Eine lokale Zeit, bei der es sich um eine koordinierte Weltzeit handelt, die auf die lokale Zeitzone abgestimmt DateTime ist, Kind wird durch eine- LocalStruktur dargestellt, deren-Eigenschaft den Wert aufweist.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. Beim Wiederherstellen eines DateTime lokalen Werts aus der binären Darstellung, die von der ToBinary -Methode erstellt FromBinary wird, kann die-Methode den neu erstellten Wert so anpassen, dass er nicht gleich dem ursprünglichen Wert ist.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. Dieser Fall kann unter den folgenden Bedingungen eintreten:This can occur under the following conditions:

  • Wenn ein lokales DateTime Objekt von der ToBinary -Methode in einer Zeitzone serialisiert und anschließend durch die FromBinary -Methode in einer anderen Zeitzone deserialisiert wird, wird die vom resultierenden DateTime Objekt dargestellte lokale Zeit automatisch angepasst. in die zweite Zeitzone.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.

    Stellen Sie sich beispielsweise DateTime ein-Objekt vor, das eine Ortszeit von 3 Uhr darstellt.For example, consider a DateTime object that represents a local time of 3 P.M. Eine Anwendung, die in der Pacific Time Zone verwendet die ToBinary -Methode, um DateTime dieses Objekt in einen binären Wert zu konvertieren.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. Eine andere Anwendung, die in der Die Eastern Time Zone verwendet dann FromBinary die-Methode, um den binären Wert in DateTime ein neues-Objekt zu konvertieren.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. Der Wert des neuen DateTime -Objekts ist 6 Uhr, was denselben Zeitpunkt wie das ursprüngliche 3-pm-Objekt darstellt.The value of the new DateTime object is 6 P.M., which represents the same point in time as the original 3 P.M. , wird jedoch an die Ortszeit in der Eastern Time-Zone angepasst.value, but is adjusted to local time in the Eastern Time zone.

  • Wenn die binäre Darstellung eines lokalen DateTime Werts eine ungültige Zeit in der lokalen Zeitzone des Systems darstellt, in dem FromBinary aufgerufen wird, wird die Uhrzeit so angepasst, dass Sie gültig ist.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.

    Beispielsweise findet der Übergang von der Standardzeit zur Sommerzeit in der Pacific Time Zone der USA am 14. März 2010 um 2:00 Uhr statt, wenn die Zeit um eine Stunde um um 3:00 Uhr liegt.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. Dieses Stunden Intervall ist eine ungültige Zeit, d. h. ein Zeitintervall, das in dieser Zeitzone nicht vorhanden ist.This hour interval is an invalid time, that is, a time interval that does not exist in this time zone. Das folgende Beispiel zeigt, dass eine Zeitspanne, die in diesen Bereich fällt, von der ToBinary -Methode in einen binären Wert konvertiert wird und dann von der FromBinary -Methode wieder hergestellt wird. der ursprüngliche Wert wird so angepasst, dass er zu einer gültigen Zeit wird.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. Sie können bestimmen, ob ein bestimmter Datums-und Uhrzeitwert geändert werden kann, indem er an TimeZoneInfo.IsInvalidTime die-Methode übergeben wird, wie im Beispiel veranschaulicht.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
    

Überlegungen zur VersionVersion Considerations

Beginnend mit der .NET Framework Version 2,0 besteht eine DateTime Struktur aus einem privaten feldfeld, das angibt, ob die angegebene Zeit Ortszeit, koordinierte Weltzeit (UTC) oder keines von beiden ist, die mit einem Feld für private Ticks verkettet ist. enthält die Anzahl der 100-Nanosekunden-Ticks, die ein Datum und eine Uhrzeit angeben.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. Auf die Anzahl der Ticks kann mit der Ticks -Eigenschaft zugegriffen werden, und auf das Kind-Feld kann mit der Kind -Eigenschaft zugegriffen werden.The number of ticks can be accessed with the Ticks property and theKind field can be accessed with the Kind property.

Wenn Sie vor dem .NET Framework 2,0 ein DateTime -Objekt manuell serialisiert haben, statt eine Serialisierungsschnittstelle wie zu System.Runtime.Serialization.ISerializableverwenden, mussten Sie nur DateTimedie Ticks-Daten in serialisieren.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. Beginnend mit dem .NET Framework 2,0 müssen Sie auch die Art der Daten serialisieren.Starting with the .NET Framework 2.0, you must also serialize the Kind data.

Gilt für:

Siehe auch