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

Définition

Désérialise une valeur binaire 64 bits et recrée un objet DateTime sérialisé d'origine.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

Paramètres

dateData
Int64 Int64 Int64 Int64

Entier 64 bits signé qui encode la propriété Kind dans un champ 2 bits et la propriété Ticks dans un champ 62 bits.A 64-bit signed integer that encodes the Kind property in a 2-bit field and the Ticks property in a 62-bit field.

Retours

Objet qui équivaut à l'objet DateTime qui a été sérialisé par la méthode ToBinary().An object that is equivalent to the DateTime object that was serialized by the ToBinary() method.

Exceptions

dateData est inférieur à MinValue ou supérieur à MaxValue.dateData is less than MinValue or greater than MaxValue.

Remarques

Utilisez la ToBinary méthode pour convertir la valeur de l’objet DateTime actuel en une valeur binaire.Use the ToBinary method to convert the value of the current DateTime object to a binary value. Ensuite, utilisez la valeur binaire et la FromBinary méthode pour recréer l’objet DateTime d’origine.Subsequently, use the binary value and the FromBinary method to recreate the original DateTime object.

Important

Dans certains cas, la DateTime valeur retournée par FromBinary la méthode n’est pas identique à DateTime la valeur d’origine ToBinary fournie à la méthode.In some cases, the DateTime value returned by the FromBinary method is not identical to the original DateTime value supplied to the ToBinary method. Pour plus d’informations, consultez la section suivante, « réglage de l’heure locale ».For more information, see the next section, "Local Time Adjustment".

Réglage de l’heure localeLocal Time Adjustment

Une heure locale, qui est un temps universel coordonné ajusté au fuseau horaire local, est représentée par une DateTime structure dont Kind la propriété a la valeur 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. Lors de la restauration DateTime d’une valeur locale à partir de la représentation binaire ToBinary produite par la FromBinary méthode, la méthode peut ajuster la valeur recréée afin qu’elle ne soit pas égale à la valeur d’origine.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. Cela peut se produire dans les conditions suivantes :This can occur under the following conditions:

  • Si un objet DateTime local est sérialisé dans un fuseau horaire par la ToBinary méthode, puis désérialisé dans un autre fuseau horaire par la FromBinary méthode, l’heure locale représentée par l’objet résultant DateTime est ajustée automatiquement. au deuxième fuseau horaire.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.

    Prenons l’exemple d’un DateTime objet qui représente une heure locale de 15 heures.For example, consider a DateTime object that represents a local time of 3 P.M. Une application qui s’exécute aux États-Unis Le fuseau horaire Pacifique utilise ToBinary la méthode pour convertir DateTime cet objet en valeur binaire.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. Une autre application qui s’exécute aux États-Unis Le fuseau horaire est utilise ensuite FromBinary la méthode pour convertir la valeur binaire en un DateTime nouvel objet.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. La valeur du nouvel DateTime objet est 18 p.m., ce qui représente le même point dans le temps que le 3 h d’origine.The value of the new DateTime object is 6 P.M., which represents the same point in time as the original 3 P.M. valeur, mais est ajusté à l’heure locale dans le fuseau horaire est.value, but is adjusted to local time in the Eastern Time zone.

  • Si la représentation binaire d’une valeur DateTime locale représente une heure non valide dans le fuseau horaire local du système sur lequel FromBinary est appelé, l’heure est ajustée afin d’être valide.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.

    Par exemple, le passage de l’heure d’hiver à l’heure d’été se produit dans le fuseau horaire Pacifique de l’États-Unis le 2010 14 mars, à 2:00 A.M., lorsque l’heure avance d’une heure, à 3:00 du matin.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. Cette heure est une heure non valide, autrement dit, un intervalle de temps qui n’existe pas dans ce fuseau horaire.This hour interval is an invalid time, that is, a time interval that does not exist in this time zone. L’exemple suivant montre que lorsqu’une heure qui se trouve dans cette plage est convertie en valeur binaire ToBinary par la méthode et qu’elle est FromBinary ensuite restaurée par la méthode, la valeur d’origine est ajustée pour devenir une heure valide.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. Vous pouvez déterminer si une valeur de date et d’heure particulière peut être sujette à modification en la passant TimeZoneInfo.IsInvalidTime à la méthode, comme l’illustre l’exemple.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
    

Considérations sur la versionVersion Considerations

À partir de la version de .NET Framework 2,0 DateTime , une structure se compose d’un champ Kind privé, qui indique si l’heure spécifiée est l’heure locale, le temps universel coordonné (UTC), ou aucune des autres, concaténés à un champ de cycles privés, qui contient le nombre de graduations de 100 nanosecondes qui spécifient une date et une heure.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. Le nombre de graduations est accessible à l’aide Ticks de la propriété et le champ theKind est accessible Kind avec la propriété.The number of ticks can be accessed with the Ticks property and theKind field can be accessed with the Kind property.

Avant le .NET Framework 2,0, si vous avez sérialisé manuellement un DateTime objet au lieu d’utiliser une interface de sérialisation telle que System.Runtime.Serialization.ISerializable, vous deviez sérialiser uniquement les données de graduations dans DateTimele.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. À partir de la .NET Framework 2,0, vous devez également sérialiser les données Kind.Starting with the .NET Framework 2.0, you must also serialize the Kind data.

S’applique à

Voir aussi