Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

DateTime.ToBinary-Methode: ()

 

Veröffentlicht: Oktober 2016

Serialisiert das aktuelle DateTime-Objekt in einen 64-Bit-Binärwert, der dann zum erneuten Erstellen des DateTime-Objekts verwendet werden kann.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

public long ToBinary()

Rückgabewert

Type: System.Int64

Eine 64-Bit-Ganzzahl mit Vorzeichen, die die Eigenschaften Kind und Ticks codiert.

Verwenden der ToBinary Methode zum Konvertieren des Werts des aktuellen DateTime Objekt in einen Binärwert. Anschließend verwenden Sie den binären Wert und die FromBinary -Methode zum Neuerstellen der ursprünglichen DateTime Objekt.

System_CAPS_importantWichtig

In einigen Fällen die DateTime zurückgegebene Wert den FromBinary Methode ist nicht mit dem Original identisch DateTime für bereitgestellte Wert der ToBinary Methode. Weitere Informationen finden Sie im nächsten Abschnitt, "Ortszeit Anpassung".

Eine Ortszeit, die eine Coordinated Universal Time, die auf der lokalen Zeitzone angepasst ist, wird durch dargestellt eine DateTime Struktur, deren Kind Eigenschaft hat den Wert Local. Beim Wiederherstellen einer lokales DateTime Wert aus der binären Darstellung, die vom erzeugt wird die ToBinary -Methode, die FromBinary Methode möglicherweise die neu erstellte Wert anpassen, sodass er nicht mit den ursprünglichen Wert übereinstimmt. Dieser Fall kann unter den folgenden Bedingungen eintreten:

  • Wenn eine lokale DateTime Objekt erfolgt die Serialisierung in einer Zeitzone von der ToBinary -Methode, und klicken Sie dann in einer anderen Zeitzone von deserialisiert die FromBinary -Methode, die lokale Zeit dargestellt, die durch das resultierende DateTime Objekt wird automatisch auf die zweite Zeitzone angepasst.

    Betrachten Sie beispielsweise eine DateTime -Objekt, das lokale Zeit von 15: 00 Uhr darstellt. Eine Anwendung, die in den USA ausgeführt wird Zeitzone Pacific Time verwendet die ToBinary Methode zu, die zu konvertierende DateTime Objekt in einen Binärwert. Eine andere Anwendung, die in den USA ausgeführt wird Zeitzone Eastern Time verwendet die FromBinary -Methode zum Konvertieren von des Binärwerts in eine neue DateTime Objekt. Der Wert der neuen DateTime Objekt ist 18: 00 Uhr, die denselben Zeitpunkt wie der ursprüngliche Wert von 3 Uhr darstellt, aber in die Ortszeit in der Zeitzone Eastern Time angepasst wird.

  • Wenn die binäre Darstellung eines lokalen DateTime Wert stellt eine ungültige Zeit in der lokalen Zeitzone des Systems auf dem FromBinary ist aufgerufen wird, wird die Zeit angepasst, damit es gültig ist.

    Beispielsweise erfolgt der Übergang von Normalzeit zu Sommerzeit in den USA Zeitzone Pacific Time am 14. März 2010 um 2:00 Uhr, wenn die Zeit um eine Stunde, um 3:00 Uhr Diese Stunden-Intervall ist eine ungültige Zeit, d. h. ein Zeitintervall, das in dieser Zeitzone nicht vorhanden ist. Das folgende Beispiel zeigt, dass wenn eine Zeit, die innerhalb dieses Bereichs in einen Binärwert konvertiert wird die ToBinary Methode und wird dann wiederhergestellt werden, indem Sie die FromBinary -Methode, den ursprünglichen Wert so angepasst, dass eine gültige Zeit wird. Sie können bestimmen, ob ein bestimmter Datums- und Uhrzeitwert Änderungen unterliegen möglicherweise durch Übergabe an die TimeZoneInfo.IsInvalidTime -Methode, wie im Beispiel veranschaulicht.

    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
    

Beginnend mit .NET Framework, Version 2.0, einem DateTime Struktur besteht aus einem privaten Kind-Feld, das angibt, ob das angegebene Time-Werten auf Ortszeit, koordinierter Weltzeit (UTC) oder keines von beiden basiert, und ein privates Feld von Ticks, die die Anzahl der 100-Nanosekunden-Ticks enthält, die ein Datum und eine Uhrzeit angeben. Ticks-Feld zugegriffen werden kann, mit der Ticks -Eigenschaft und das Kind-Feld mit zugegriffen werden kann die Kind Eigenschaft.

Vor .NET Framework 2.0, wenn Sie serialisiert eine DateTime Objekt manuell statt mit Serialisierungsschnittstelle wie System.Runtime.Serialization.ISerializable, mussten Sie nur die Ticks-Daten in Serialisieren der DateTime Struktur. Ab Version 2.0, müssen Sie auch die Kind-Daten serialisieren.

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 2.0
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Windows Phone Silverlight
Verfügbar seit 8.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: