情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

DateTime.FromBinary メソッド

2013/12/12

64 ビットのバイナリ値を逆シリアル化し、元のシリアル化 DateTime オブジェクトを再構築します。

Namespace:  System
アセンブリ:  mscorlib (mscorlib.dll 内)

public static DateTime FromBinary(
	long dateData
)

パラメーター

dateData
型: System.Int64
2 ビット フィールドの Kind プロパティおよび 62 ビット フィールドの Ticks プロパティをエンコードする 64 ビット符号付き整数。

戻り値

型: System.DateTime
元の DateTime オブジェクトの値と等しいオブジェクト。

例外条件
ArgumentException

dateDataDateTime.MinValue より小さい値か、DateTime.MaxValue より大きい値です。

FromBinary メソッドを使用して、DateTime.ToBinary メソッドによって Int64 値に変換された DateTime 値を元の値に復元します。

重要: 重要:

場合によっては、FromBinary メソッドが返す DateTime 値は、DateTime.ToBinary メソッドに与えられた元の DateTime 値とまったく同じではありません。詳細については、次のセクション「現地時刻の調整」を参照してください。

現地時刻の調整

世界協定時刻を現地のタイム ゾーンで調整することによって得られる現地時刻は、Kind プロパティに Local 値が割り当てられた DateTime 値によって表されます。ローカルの DateTime値を、同等の Int64 値から復元する場合は、FromBinary メソッドが、元の値を同じにならないように、再作成された値を調整する場合があります。これは、次のような条件で発生します。

  • 現地時刻を表す DateTime オブジェクトを DateTime.ToBinary メソッドを使って特定のタイム ゾーンでシリアル化した場合、それを異なるタイム ゾーンで逆シリアル化するには、FromBinary メソッドを使用します。その結果得られる DateTime オブジェクトの現地時刻は、自動的に 2 つ目のタイム ゾーンに合わせて調整されます。

    たとえば、午後 3 時のローカル時刻を表す DateTime があるとします。米国太平洋標準時で動作している Web サーバー アプリケーションは、DateTime.ToBinary メソッドを使用して、その日付と時刻を 2 進法の値に変換します。Windows Phone ベースのアプリケーションであり、米国東部標準時ゾーンで動作し、その後、FromBinary メソッドを使用して、バイナリ値を新しい DateTime オブジェクトに変換します。この場合、新しい DateTime オブジェクトの値は午後 6:00 になります。これは、午後 3:00 という元の値と同じ時点を表していますが、米国東部タイム ゾーンの現地時刻に合わせて調整されています。

  • ローカルの DateTime 値のバイナリ表現が、FromBinary が呼び出されたときのシステムのローカル タイム ゾーンで無効な時刻を表している場合は、有効になるように時刻が調整されます。

    たとえば、米国の太平洋標準時ゾーンでは標準時間から夏時間への移行が 2010 年 3 月 14 日午前 2 時 00 分に起こり、そのときに時間が 1 時間進み、午後 3 時 00 分になります。この時間間隔は無効な時刻、つまり、このタイム ゾーンには存在しない時間間隔です。DateTime.ToBinary メソッドによってこの範囲内にある時間がバイナリ値に変換され、FromBinary メソッドによって復元されると、元の値が有効な時刻になるように調整されます。特定の日付と時刻の値を TimeZoneInfo.IsInvalidTime メソッドに渡すことによって、その値が変更の対象になる可能性があるかどうかを判断できます。

Windows Phone OS

サポート: 8.0

表示: