時刻とタイム ゾーン
更新 : 2007 年 11 月
基本的な DateTime 構造体に加えて、.NET Framework にはタイム ゾーンを扱う次のようなクラスも用意されています。
-
システムのローカル タイム ゾーンと世界協定時刻 (UTC: Coordinated Universal Time) タイム ゾーンを扱うには、このクラスを使用します。TimeZone クラスのほとんどの機能は、TimeZoneInfo クラスに引き継がれています。
-
このクラスを使用すると、システムに事前に定義されている任意のタイム ゾーンを処理し、新しいタイム ゾーンを作成して、1 つのタイム ゾーンから別のタイム ゾーンに日付/時刻を簡単に変換できます。新たに開発する場合は、TimeZone クラスではなく TimeZoneInfo クラスを使用してください。
-
この構造体を使用すると、UTC とのオフセット (つまり時差) がわかっている日付/時刻を処理できます。DateTimeOffset 構造体は、日付/時刻値、およびその時刻と UTC とのオフセットを組み合わせます。UTC との相対関係が示されるため、個々の日付/時刻値は 1 つの特定の日時を明確に表すことになります。このため、DateTimeOffset 値は DateTime 値に比べて、コンピュータ間での移植性に優れています。
ここでは、タイム ゾーンを処理するために必要な情報、および 1 つのタイム ゾーンから別のタイム ゾーンに日付/時刻を変換するタイム ゾーン対応アプリケーションを作成するために必要な情報について説明します。
このセクションの内容
タイム ゾーン対応アプリケーションの作成に関連した用語、概念、および問題について説明します。
DateTime、DateTimeOffset、および TimeZoneInfo の使い分け
日付/時刻データを扱う際、どのような場合に DateTime、DateTimeOffset、および TimeZoneInfo の各型を使用できるかについて説明します。
ローカル システム上で検出されるタイム ゾーンを列挙する方法について説明します。
コンピュータのレジストリに定義されているタイム ゾーンを列挙し、1 つの定義済みタイム ゾーンをユーザーがリストから選択できるようにする例を示します。
方法 : 定義済みの UTC オブジェクトおよびローカル タイム ゾーン オブジェクトにアクセスする
世界協定時刻とローカル タイム ゾーンにアクセスする方法について説明します。
方法 : TimeZoneInfo オブジェクトをインスタンス化する
ローカル システムのレジストリから TimeZoneInfo オブジェクトをインスタンス化する方法について説明します。
DateTimeOffset オブジェクトをインスタンス化する方法、および DateTime 値を DateTimeOffset 値に変換する方法について説明します。
夏時間の調整をサポートしないカスタム タイム ゾーンを作成する方法について説明します。
1 つ以上の夏時間調整をサポートするカスタム タイム ゾーンを作成する方法について説明します。
タイム ゾーン データのシリアル化と逆シリアル化が TimeZoneInfo でどのようにサポートされるかを説明し、これを使用できるいくつかのシナリオを示します。
カスタム タイム ゾーンを作成し、その情報をリソース ファイルに保存する方法について説明します。
埋め込みリソース ファイルに保存されているカスタム タイム ゾーンをインスタンス化する方法について説明します。
DateTime 値と DateTimeOffset 値の加算、減算、および比較に関連した問題について説明します。
タイム ゾーンの調整規則を考慮して日付と時刻の演算を実行する方法について説明します。
DateTime と DateTimeOffset 間の変換
DateTime 値と DateTimeOffset 値を相互に変換する方法について説明します。
1 つのタイム ゾーンから別のタイム ゾーンに時刻を変換する方法について説明します。
あいまいな時刻をタイム ゾーンの標準時刻に対応付けることによって解決する方法を示します。
あいまいなローカル時刻と世界協定時刻との対応付けをユーザーが決定できるようにする方法を示します。