タイム ゾーンの概要Time zone overview

TimeZoneInfoクラスがタイム ゾーン対応のアプリケーションの作成を簡略化します。The TimeZoneInfo class simplifies the creation of time zone-aware applications. TimeZoneクラス ローカル タイム ゾーンと世界協定時刻 (UTC) の操作がサポートされます。The TimeZone class supports working with the local time zone and Coordinated Universal Time (UTC). TimeZoneInfoクラスは、これらのゾーンのレジストリ内だけでなく、タイム ゾーン情報に関するは定義済みの両方をサポートします。The TimeZoneInfo class supports both of these zones as well as any time zone about which information is predefined in the registry. 使用することもTimeZoneInfoシステムに関する情報がないカスタムのタイム ゾーンを定義します。You can also use TimeZoneInfo to define custom time zones that the system has no information about.

タイム ゾーンの基本事項Time zone essentials

タイム ゾーンは、同じ時刻が使用されている地域です。A time zone is a geographical region in which the same time is used. 常にではありませんが、通常、隣接するタイム ゾーンは 1 時間違いです。Typically, but not always, adjacent time zones are one hour apart. 世界のタイム ゾーンの時刻は、世界協定時刻 (UTC) からのオフセットとして表されます。The time in any of the world's time zones can be expressed as an offset from Coordinated Universal Time (UTC).

世界のタイム ゾーンの多くは、夏時間をサポートしています。Many of the world's time zones support daylight saving time. 夏時間では、春や初夏には時刻を 1 時間進め、晩夏や秋には通常 (または標準) の時間に戻すことで、日中の時間を最大化しようと試みます。Daylight saving time tries to maximize daylight hours by advancing the time forward by one hour in the spring or early summer, and returning to the normal (or standard) time in the late summer or fall. こうした標準時間前後の変更は、調整規則と呼ばれます。These changes to and from standard time are known as adjustment rules.

特定のタイム ゾーンの夏時間前後の移行は、固定調整規則または浮動調整規則で定義できます。The transition to and from daylight saving time in a particular time zone can be defined either by a fixed or a floating adjustment rule. 固定調整規則では、毎年、夏時間前後の移行が行われる特定の日付を設定します。A fixed adjustment rule sets a particular date on which the transition to or from daylight saving time occurs each year. たとえば、毎年 10 月 25 日に行われる夏時間から標準時間への移行は、固定調整規則に従います。For example, a transition from daylight saving time to standard time that occurs each year on October 25 follows a fixed adjustment rule. 浮動調整規則の方がはるかに一般的です。浮動調整規則では、夏時間への移行、または夏時間からの移行について特定の月の特定の週の特定の曜日が設定されます。Much more common are floating adjustment rules, which set a particular day of a particular week of a particular month for the transition to or from daylight saving time. たとえば、3 月の第 3 日曜日に行われる標準時間から夏時間への移行は、浮動調整規則に従います。For example, a transition from standard time to daylight saving time that occurs on the third Sunday of March follows a floating adjustment rule.

調整規則をサポートするタイム ゾーンの場合、夏時間前後の移行によって、2 つの変則的な時刻が生じます。無効な時刻とあいまいな時刻です。For time zones that support adjustment rules, the transition to and from daylight saving time creates two kinds of anomalous times: invalid times and ambiguous times. 無効な時刻は、標準時間から夏時間への移行で生じる存在しない時刻です。An invalid time is a nonexistent time created by the transition from standard time to daylight saving time. たとえば、移行が特定の日付の午前 2:00 に行われ、For example, if this transition occurs on a particular day at 2:00 A.M. 時刻が午前 3:00 に変更される場合、午前 2:00 からand causes the time to change to 3:00 A.M., each time interval between 2:00 A.M. 午前 2:59:99 までの時刻はand 2:59:99 A.M. 無効です。is invalid. あいまいな時刻は、1 つのタイム ゾーンで 2 つの時刻にマップできる時刻です。An ambiguous time is a time that can be mapped to two different times in a single time zone. あいまいな時刻は夏時間から標準時間への移行で生じます。It is created by the transition from daylight saving time to standard time. たとえば、移行が特定の日付の午前 2:00 に行われ、For example, if this transition occurs on a particular day at 2:00 A.M. 時刻が午前 1:00 に変更される場合、午前 1:00 からand causes the time to change to 1:00 A.M., each time interval between 1:00 A.M. 午前 1:59:99 までの時刻はand 1:59:99 A.M. 標準時間または夏時間のいずれにでも解釈できます。can be interpreted as either a standard time or a daylight saving time.

タイム ゾーンの用語Time zone terminology

次の表は、タイム ゾーンを使用し、タイム ゾーン対応アプリケーションを開発するときに一般的に使用される用語の定義一覧です。The following table defines terms commonly used when working with time zones and developing time zone-aware applications.

用語Term 定義Definition
調整規則Adjustment rule 標準時間から夏時間へ、および夏時間から標準時間への移行が行われるタイミングを定義した規則。A rule that defines when the transition from standard time to daylight saving time and back from daylight saving time to standard time occurs. 各調整規則が、開始日と終了日と、ルールが設定を定義する (たとえば、2006 年 12 月 31 日 1986 年 1 月 1日から適切な場所には調整規則)、デルタ (時間数番目のアプリケーションの結果として標準時に変更します。e 調整規則)、および特定の日付と調整期間中に発生する遷移は、時間に関する情報。Each adjustment rule has a start and end date that defines when the rule is in place (for example, the adjustment rule is in place from January 1, 1986, to December 31, 2006), a delta (the amount of time by which the standard time changes as a result of the application of the adjustment rule), and information about the specific date and time that the transitions are to occur during the adjustment period. 移行は、固定規則または浮動規則に従う可能性があります。Transitions can follow either a fixed rule or a floating rule.
あいまいな時刻Ambiguous time 1 つのタイム ゾーンで 2 つの時刻にマップできる時刻です。A time that can be mapped to two different times in a single time zone. あいまいな時刻は、あるタイム ゾーンの夏時間から標準時間に移行する際など、時計の時刻を前に戻すときに発生します。It occurs when the clock time is adjusted back in time, such as during the transition from a time zone's daylight saving time to its standard time. たとえば、移行が特定の日付の午前 2:00 に行われ、For example, if this transition occurs on a particular day at 2:00 A.M. 時刻が午前 1:00 に変更される場合、午前 1:00 からand causes the time to change to 1:00 A.M., each time interval between 1:00 A.M. 午前 1:59:99 までの時刻はand 1:59:99 A.M. 標準時間または夏時間のいずれにでも解釈できます。can be interpreted as either a standard time or a daylight saving time.
固定規則Fixed rule 夏時間前後の移行について特定の日付を設定する調整規則。An adjustment rule that sets a particular date for the transition to or from daylight saving time. たとえば、毎年 10 月 25 日に行われる夏時間から標準時間への移行は、固定調整規則に従います。For example, a transition from daylight saving time to standard time that occurs each year on October 25 follows a fixed adjustment rule.
浮動規則Floating rule 浮動調整規則の方がはるかに一般的です。浮動調整規則では、夏時間への移行、または夏時間からの移行について特定の月の特定の週の特定の曜日が設定されます。An adjustment rule that sets a particular day of a particular week of a particular month for the transition to or from daylight saving time. たとえば、3 月の第 3 日曜日に行われる標準時間から夏時間への移行は、浮動調整規則に従います。For example, a transition from standard time to daylight saving time that occurs on the third Sunday of March follows a floating adjustment rule.
無効な時刻Invalid time 標準時間から夏時間への移行中に生じる存在しない時刻。A nonexistent time that is an artifact of the transition from standard time to daylight saving time. 無効な時刻は、あるタイム ゾーンの標準時間から夏時間に移行する際など、時計の時刻を前に進めるときに発生します。It occurs when the clock time is adjusted forward in time, such as during the transition from a time zone's standard time to its daylight saving time. たとえば、移行が特定の日付の午前 2:00 に行われ、For example, if this transition occurs on a particular day at 2:00 A.M. 時刻が午前 3:00 に変更される場合、午前 2:00 からand causes the time to change to 3:00 A.M., each time interval between 2:00 A.M. 午前 2:59:99 までの時刻はand 2:59:99 A.M. 無効です。is invalid.
移行時間Transition time 特定のタイム ゾーンで実施される夏時間と標準時間の切り替えなど、特定の時間切り替えに関する情報。Information about a specific time change, such as the change from daylight saving time to standard time or vice versa, in a particular time zone.

タイム ゾーンと TimeZoneInfo クラスTime zones and the TimeZoneInfo class

.NET では、TimeZoneInfoオブジェクトは、タイム ゾーンを表します。In .NET, a TimeZoneInfo object represents a time zone. TimeZoneInfoクラスが含まれています、GetAdjustmentRulesの配列を返すメソッドTimeZoneInfo.AdjustmentRuleオブジェクト。The TimeZoneInfo class includes a GetAdjustmentRules method that returns an array of TimeZoneInfo.AdjustmentRule objects. この配列の各要素は、特定の期間中に夏時間との切り替えに関する情報を提供します。Each element of this array provides information about the transition to and from daylight saving time for a particular time period. (タイム ゾーンの夏時間をサポートしていない、メソッドを返します、空の配列です。)各TimeZoneInfo.AdjustmentRuleオブジェクトには、DaylightTransitionStartDaylightTransitionEnd夏時間から特定の日付と、切り替え効果の時間を定義するプロパティです。(For time zones that do not support daylight saving time, the method returns an empty array.) Each TimeZoneInfo.AdjustmentRule object has a DaylightTransitionStart and a DaylightTransitionEnd property that defines the particular date and time of the transition to and from daylight saving time. IsFixedDateRuleプロパティは、その遷移が固定または浮動小数点かどうかを示します。The IsFixedDateRule property indicates whether that transition is fixed or floating.

.NET は、Windows オペレーティング システムによって提供され、レジストリに格納されているタイム ゾーン情報に依存しています。.NET relies on time zone information provided by the Windows operating system and stored in the registry. 地球のタイム ゾーンの数、原因は、既存のすべてのタイム ゾーンは、レジストリで表されます。Due to the number of the earth's time zones, not all existing time zones are represented in the registry. さらに、レジストリは動的な構造であるため、定義済みのタイム ゾーンに追加したり削除されることです。In addition, because the registry is a dynamic structure, predefined time zones can be added to or removed from it. 最後に、レジストリとは限りませんデータは含まれません過去のタイム ゾーン。Finally, the registry does not necessarily contain historic time zone data. たとえば、Windows XP には、レジストリには、1 つのセットのタイム ゾーンの調整のみに関するデータが含まれています。For example, in Windows XP the registry contains data about only a single set of time zone adjustments. Windows Vista には、1 つのタイム ゾーンが年の特定の間隔に適用される調整規則が複数に持つことができることを意味するタイム ゾーンの動的なデータがサポートしています。Windows Vista supports dynamic time zone data, which means that a single time zone can have multiple adjustment rules that apply to specific intervals of years. ただし、Windows Vista レジストリおよびサポート夏時間で定義されているほとんどのタイム ゾーンでは、1 つまたは 2 つの定義済みの調整規則があります。However, most time zones that are defined in the Windows Vista registry and support daylight saving time have only one or two predefined adjustment rules.

依存関係、TimeZoneInfoレジストリのクラスはすることはできません、タイム ゾーン対応のアプリケーションが特定の特定のタイム ゾーンがレジストリで定義されていることを意味します。The dependence of the TimeZoneInfo class on the registry means that a time zone-aware application cannot be certain that a particular time zone is defined in the registry. そのため、(ローカルのタイム ゾーンまたは UTC を示すタイム ゾーン以外の) 特定のタイム ゾーンをインスタンス化する場合、例外処理を使用する必要があります。As a result, the attempt to instantiate a specific time zone (other than the local time zone or the time zone that represents UTC) should use exception handling. 引き続き、必要な場合でも、アプリケーションのいくつかのメソッドも提供する必要がありますTimeZoneInfoレジストリからオブジェクトをインスタンス化できません。It should also provide some method of letting the application to continue if a required TimeZoneInfo object cannot be instantiated from the registry.

必須のタイム ゾーンがない場合を処理するために、TimeZoneInfoクラスが含まれています、CreateCustomTimeZoneメソッドで、レジストリに記載されていないカスタムのタイム ゾーンの作成を行うこともできます。To handle the absence of a required time zone, the TimeZoneInfo class includes a CreateCustomTimeZone method, which you can use to create custom time zones that are not found in the registry. カスタムのタイム ゾーンを作成する方法の詳細については、「する方法: 調整規則のないタイム ゾーンを作成する方法: 調整規則のあるタイム ゾーンを作成です。For details on creating a custom time zone, see How to: Create time zones without adjustment rules and How to: Create time zones with adjustment rules. さらに、使用することができます、ToSerializedStringメソッドを新しく作成されたタイム ゾーンを文字列に変換し、(など、データベース、テキスト ファイル、レジストリ、またはアプリケーションのリソース) のデータ ストアに保存します。In addition, you can use the ToSerializedString method to convert a newly created time zone to a string and save it in a data store (such as a database, a text file, the registry, or an application resource). 使用してできます、FromSerializedStringにこの文字列に変換するメソッドが戻る、TimeZoneInfoオブジェクト。You can then use the FromSerializedString method to convert this string back to a TimeZoneInfo object. 詳細については、「する方法: 埋め込みリソースにタイム ゾーンを保存する方法: 埋め込みリソースからタイム ゾーンを復元です。For details, see How to: Save time zones to an embedded resource and How to: Restore time zones from an embedded resource.

各タイム ゾーンは、UTC からのベース オフセットと、既存の調整規則を反映した UTC からのオフセットによって表されるため、あるタイム ゾーンの時刻は、簡単に別のタイム ゾーンの時間に変換できます。Because each time zone is characterized by a base offset from UTC, as well as by an offset from UTC that reflects any existing adjustment rules, a time in one time zone can be easily converted to the time in another time zone. この目的のため、TimeZoneInfoオブジェクトにはなど、いくつかの変換メソッドが含まれています。For this purpose, the TimeZoneInfo object includes several conversion methods, including:

  • ConvertTimeFromUtcで指定されたタイム ゾーンの時刻を UTC に変換します。ConvertTimeFromUtc, which converts UTC to the time in a designated time zone.

  • ConvertTimeToUtcで指定されたタイム ゾーンの時刻を UTC に変換します。ConvertTimeToUtc, which converts the time in a designated time zone to UTC.

  • ConvertTime、1 つの指定されたタイム ゾーンの時刻を指定した別のタイム ゾーンの時刻に変換します。ConvertTime, which converts the time in one designated time zone to the time in another designated time zone.

  • ConvertTimeBySystemTimeZoneId、タイム ゾーン id を使用する (の代わりにTimeZoneInfoオブジェクト) を指定した別のタイム ゾーンの時刻に 1 つの指定されたタイム ゾーンの時刻に変換するパラメーターとして。ConvertTimeBySystemTimeZoneId, which uses time zone identifiers (instead of TimeZoneInfo objects) as parameters to convert the time in one designated time zone to the time in another designated time zone.

タイム ゾーン間の時間を変換する方法の詳細については、「タイム ゾーン間での時刻の変換」を参照してください。For details on converting times between time zones, see Converting times between time zones.

関連項目See also

日付、時刻、およびタイム ゾーンDates, times, and time zones