Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

DateTime.FromBinary méthode (Int64)

 

Date de publication : novembre 2016

Désérialise une valeur binaire 64 bits et recrée un objet DateTime sérialisé d'origine.

Espace de noms:   System
Assembly:  mscorlib (dans mscorlib.dll)

public static DateTime FromBinary(
	long dateData
)

Paramètres

dateData
Type: System.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.

Valeur de retour

Type: System.DateTime

Objet qui équivaut à l'objet DateTime qui a été sérialisé par la méthode ToBinary.

Exception Condition
ArgumentException

dateData est inférieur à MinValue ou supérieur à MaxValue.

Utilisez le ToBinary pour convertir la valeur de la méthode DateTime objet en une valeur binaire. Ensuite, utilisez la valeur binaire et la FromBinary méthode pour recréer l’original DateTime objet.

System_CAPS_importantImportant

Dans certains cas, le DateTime valeur retournée par la FromBinary méthode n’est pas identique à celle d’origine DateTime valeur fournie à la ToBinary (méthode). Pour plus d’informations, consultez la section suivante, « Réglage des heures locales ».

Une heure locale, qui est une heure UTC ajustée pour le fuseau horaire local, est représentée par un DateTime structure dont Kind propriété a la valeur Local. Lors de la restauration d’une variable locale DateTime valeur à partir de la représentation binaire qui est générée par le ToBinary (méthode), la FromBinary méthode peut ajuster la valeur recréée afin qu’il ne soit pas égale à la valeur d’origine. Cela peut se produire dans les conditions suivantes :

  • Si une variable locale DateTime l’objet 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 résultant DateTime objet est automatiquement ajusté pour le second fuseau horaire.

    Par exemple, considérez un DateTime objet qui représente une heure locale de 15 heures. Une application qui s’exécute aux États-Unis. Fuseau horaire Pacifique utilise le ToBinary méthode pour convertir DateTime objet en une valeur binaire. Une autre application qui s’exécute aux États-Unis. Fuseau horaire est utilise ensuite la FromBinary méthode pour convertir la valeur binaire à une nouvelle DateTime objet. La valeur de la nouvelle DateTime objet est de 18 h 00, ce qui représente le même point dans le temps que la valeur d’origine de 3 heures, mais est ajustée en heure locale dans le fuseau horaire est.

  • Si la représentation binaire d’une variable locale DateTime valeur représente une heure non valide dans le fuseau horaire local du système sur lequel FromBinary est appelée, l’heure est ajustée afin qu’il soit valide.

    Par exemple, la transition à partir de l’heure d’hiver à l’heure d’été se produit dans la zone Pacifique des États-Unis le 14 mars 2010, à 2 h 00, lorsque l’heure avance d’une heure à 3 h 00 du matin. Cet intervalle horaire est une heure non valide, autrement dit, un intervalle de temps qui n’existe pas dans ce fuseau horaire. L’exemple suivant montre que lorsqu’une heure qui se trouve dans cette plage est convertie en une valeur binaire par le ToBinary (méthode) et est ensuite restaurée par le FromBinary (méthode), la valeur d’origine est ajustée pour devenir une heure valide. Vous pouvez déterminer si une date particulière et la valeur d’heure peuvent être modifiée en le passant à la TimeZoneInfo.IsInvalidTime méthode, comme l’exemple illustre.

    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
    

En commençant par le .NET Framework version 2.0, un DateTime structure se compose d’un champ Kind privé, qui indique si l’heure spécifiée sont heure locale, le temps universel coordonné (UTC) ou aucune des deux, concaténés à un champ Ticks privé qui contient le nombre de graduations de 100 nanosecondes qui spécifient une date et une heure. Le nombre de graduations est accessible avec la Ticks propriété et lachamp Kind est accessible avec la Kind propriété.

Avant le .NET Framework 2.0, si vous sérialisiez un DateTime objet manuellement à la place à l’aide d’une interface de sérialisation comme System.Runtime.Serialization.ISerializable, vous avez besoin sérialiser uniquement les données de graduations dans le DateTime. À compter de .NET Framework 2.0, vous devez également sérialiser les données de type.

Plateforme Windows universelle
Disponible depuis 8
.NET Framework
Disponible depuis 2.0
Bibliothèque de classes portable
Pris en charge dans : plateformes .NET portables
Silverlight
Disponible depuis 4.0
Silverlight pour Windows Phone
Disponible depuis 8.0
Windows Phone
Disponible depuis 8.1
Retour au début
Afficher: