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

定義

64 ビットのバイナリ値を逆シリアル化し、元のシリアル化 DateTime オブジェクトを再構築します。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

パラメーター

dateData
Int64 Int64 Int64 Int64

2 ビット フィールドの Kind プロパティおよび 62 ビット フィールドの Ticks プロパティをエンコードする 64 ビット符号付き整数。A 64-bit signed integer that encodes the Kind property in a 2-bit field and the Ticks property in a 62-bit field.

戻り値

DateTime メソッドによってシリアル化された ToBinary() オブジェクトと等価なオブジェクト。An object that is equivalent to the DateTime object that was serialized by the ToBinary() method.

例外

dateDataMinValue より小さいか MaxValue より大きいです。dateData is less than MinValue or greater than MaxValue.

注釈

使用して、ToBinaryメソッドは、現在の値に変換するDateTimeオブジェクト バイナリ値から。Use the ToBinary method to convert the value of the current DateTime object to a binary value. バイナリ値を使用して、その後、およびFromBinaryメソッドを元の再作成するDateTimeオブジェクト。Subsequently, use the binary value and the FromBinary method to recreate the original DateTime object.

重要

場合によってで、DateTimeによって返される値、FromBinaryメソッドが元と同じでないDateTimeに指定された値、ToBinaryメソッド。In some cases, the DateTime value returned by the FromBinary method is not identical to the original DateTime value supplied to the ToBinary method. 詳細については、次のセクションでは、「ローカル タイムの調整」を参照してください。For more information, see the next section, "Local Time Adjustment".

現地時刻の調整Local Time Adjustment

ローカル タイム ゾーンに調整: Coordinated Universal Time には、現地時刻がによって表される、DateTime持つKindプロパティの値を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. ローカルの復元時にDateTimeによって生成されるバイナリ表現からの値、ToBinaryメソッド、FromBinary元の値と等しくないように、メソッドが再作成された値を調整する場合があります。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. これは、次のような条件で発生します。This can occur under the following conditions:

  • ローカルDateTimeオブジェクトは、1 つのタイム ゾーンでシリアル化、ToBinaryメソッドをおよび逆シリアル化し、別のタイム ゾーンで、FromBinaryメソッドは、結果で表されるローカル時間DateTimeオブジェクトが自動的に調整2 番目のタイム ゾーン。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.

    たとえば、DateTime現地時刻の午後 3 時を表すオブジェクトをFor example, consider a DateTime object that represents a local time of 3 P.M. 米国で実行されているアプリケーション太平洋標準時タイム ゾーンを使用して、ToBinaryを変換するメソッドDateTimeオブジェクト バイナリ値から。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. 米国で実行されている別のアプリケーション東部標準時ゾーンを使用し、FromBinaryを新しいバイナリ値に変換するメソッドDateTimeオブジェクト。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. 新しい値DateTimeオブジェクトが元の午後 3 時間の同じ時点を表している午後 6The value of the new DateTime object is 6 P.M., which represents the same point in time as the original 3 P.M. ただし、東部標準時ゾーンでのローカル時刻に調整されます。value, but is adjusted to local time in the Eastern Time zone.

  • 場合、ローカルのバイナリ表現DateTime値は、システムのローカル タイム ゾーンで無効な時刻を表しますFromBinaryが呼び出されると、時間の調整が無効です。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.

    たとえば、標準時間から夏時間への移行、米国の太平洋標準時ゾーンで発生、2010 年 3 月 14 日、午前 2時 00分に時間が午前 3 時に、1 時間進み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. この時間の間隔とは、無効な時間、つまり、このタイム ゾーンに存在しません時間間隔です。This hour interval is an invalid time, that is, a time interval that does not exist in this time zone. 次の例を時間内にあるときにこの範囲が、バイナリ値に変換されます、ToBinaryメソッドで復元が、FromBinaryメソッド、元の値が有効な時刻に調整します。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. 特定の日付と時刻の値に渡すことでの変更対象とする可能性があるかどうかを確認することができます、TimeZoneInfo.IsInvalidTimeメソッドの例として示します。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
    

バージョンの考慮事項Version Considerations

.NET Framework バージョン 2.0 以降、DateTimeを示すかどうか、指定した時間が現地時刻、世界協定時刻 (UTC)、またはそのどちらでもない、連結されたタイマー刻みのプライベート フィールドに、プライベートなフィールドから成る構造が日付と時刻を指定する 100 ナノ秒タイマー刻みの数が含まれています。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. タイマー刻みの数をアクセスするのには、Ticksプロパティと theKind フィールドをアクセスするのには、Kindプロパティ。The number of ticks can be accessed with the Ticks property and theKind field can be accessed with the Kind property.

シリアル化する場合は、.NET Framework 2.0 の前に、DateTimeなどのシリアル化インターフェイスを使用してではなく、手動でオブジェクトSystem.Runtime.Serialization.ISerializable、内のタイマー刻みデータのみをシリアル化に必要なDateTimePrior 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. 以降、.NET Framework 2.0 では、種類のデータをシリアルする必要があります。Starting with the .NET Framework 2.0, you must also serialize the Kind data.

適用対象

こちらもご覧ください