次の方法で共有


DYNAMIC_TIME_ZONE_INFORMATION 構造体 (timezoneapi.h)

タイム ゾーンと動的夏時間の設定を指定します。

構文

typedef struct _TIME_DYNAMIC_ZONE_INFORMATION {
  LONG       Bias;
  WCHAR      StandardName[32];
  SYSTEMTIME StandardDate;
  LONG       StandardBias;
  WCHAR      DaylightName[32];
  SYSTEMTIME DaylightDate;
  LONG       DaylightBias;
  WCHAR      TimeZoneKeyName[128];
  BOOLEAN    DynamicDaylightTimeDisabled;
} DYNAMIC_TIME_ZONE_INFORMATION, *PDYNAMIC_TIME_ZONE_INFORMATION;

メンバー

Bias

このコンピューター上でのローカル時間変換に使用する現在の時差 (分単位)。 時差とは、協定世界時 (UTC) とローカル時間との間の、分単位で表される差です。 UTC と現地時刻の間のすべての変換は、次の式に基づいています。

UTC = ローカル時間 + 時差

このメンバーは必須です。

StandardName[32]

標準時の説明。 たとえば、"EST" は東部標準時を示します。 文字列は、 GetDynamicTimeZoneInformation 関数によって変更されずに返されます。 この文字列は空にすることができます。

StandardDate

このオペレーティング システムで夏時間から標準時への切り替えが行われる日時と現地時刻を含む SYSTEMTIME 構造体。 タイム ゾーンで夏時間がサポートされていない場合、または呼び出し元が夏時間を無効にする必要がある場合、SYSTEMTIME 構造体の wMonth メンバーは 0 である必要があります。 この日付を指定する場合は、この構造体の DaylightDate メンバーも指定する必要があります。 それ以外の場合、システムはタイム ゾーン データが無効であると想定し、変更は適用されません。

月の正しい日を選択するには、 wYear メンバーを 0 に設定し、 wHour メンバーと wMinute メンバーを移行時間に設定し、 wDayOfWeek メンバーを適切な平日に設定し、 wDay メンバーを設定して月内の曜日の発生を示します (1 から 5 は、週のその日が 5 回発生しない場合、月の最後の発生を示します)。

この表記を使用して、4 月の最初の日曜日に 02:00 を指定します。 wHour = 2、 wMonth = 4、 wDayOfWeek = 0、 wDay = 1。 10 月の最後の木曜日に 02:00 を指定します。 wHour = 2、 wMonth = 10、 wDayOfWeek = 4、 wDay = 5。

wYear メンバーが 0 でない場合、切り替え日は絶対です。1 回だけ発生します。 それ以外の場合は、毎年発生する相対日付です。

StandardBias

標準時に発生する現地時刻の変換中に使用されるバイアス値。 StandardDate メンバーの値が指定されていない場合、このメンバーは無視されます。

この値は、標準時に使用されるバイアスを形成するために Bias メンバーの値に追加されます。 ほとんどのタイム ゾーンでは、このメンバーの値は 0 です。

DaylightName[32]

夏時間 (DST) の説明。 たとえば、"PDT" は太平洋夏時間を示します。 文字列は、 GetDynamicTimeZoneInformation 関数によって変更されずに返されます。 この文字列は空にすることができます。

DaylightDate

このオペレーティング システムで標準時から夏時間への切り替えが行われる日時と現地時刻を含む SYSTEMTIME 構造体。 タイム ゾーンで夏時間がサポートされていない場合、または呼び出し元が夏時間を無効にする必要がある場合、SYSTEMTIME 構造体の wMonth メンバーは 0 である必要があります。 この日付を指定する場合は、この構造体の StandardDate メンバーも指定する必要があります。 それ以外の場合、システムはタイム ゾーン データが無効であると想定し、変更は適用されません。

月の正しい日を選択するには、 wYear メンバーを 0 に設定し、 wHour メンバーと wMinute メンバーを移行時間に設定し、 wDayOfWeek メンバーを適切な平日に設定し、 wDay メンバーを設定して月内の曜日の発生を示します (1 から 5 は、週のその日が 5 回発生しない場合、月の最後の発生を示します)。

wYear メンバーが 0 でない場合、切り替え日は絶対です。1 回だけ発生します。 それ以外の場合は、毎年発生する相対日付です。

DaylightBias

夏時間中に発生する現地時刻の変換中に使用されるバイアス値。 DaylightDate メンバーの値が指定されていない場合、このメンバーは無視されます。

この値は、夏時間中に使用されるバイアスを形成するために Bias メンバーの値に追加されます。 ほとんどのタイム ゾーンでは、このメンバーの値は -60 です。

TimeZoneKeyName[128]

ローカル コンピューター上のタイム ゾーン レジストリ キーの名前。 詳細については、「解説」を参照してください。

DynamicDaylightTimeDisabled

動的夏時間を無効にするかどうかを示します。 このメンバーを TRUE に設定すると、動的夏時間が無効になり、システムで固定の切り替え日セットが使用されます。

動的夏時間を復元するには、DynamicDaylightTimeDisabled を FALSE に設定して SetDynamicTimeZoneInformation 関数を呼び出します。 システムは、次回の更新、次のシステム再起動、または暦年の終わり (どちらか早い方) に、現在の年の移行日を読み取ります。

GetDynamicTimeZoneInformation 関数を呼び出すとき、このメンバーはSetDynamicTimeZoneInformation ではなく SetTimeZoneInformation 関数を使用してタイム ゾーンが設定された場合、またはユーザーがコントロール パネルの Date and Time アプリケーションを使用してこの機能を無効にした場合に TRUE になります。

夏時間を無効にするには、このメンバーを TRUE に設定し、 StandardDate メンバーと DaylightDate メンバーをクリアして、 SetDynamicTimeZoneInformation を呼び出します。 夏時間を復元するには、DynamicDaylightTimeDisabled を FALSE に設定して SetDynamicTimeZoneInformation を呼び出します

解説

動的夏時間は、夏時間の境界が年ごとに変化するタイム ゾーンをサポートします。 この機能により、特に年単位の DST 境界が事前にわかっているロケールでは、システムの更新が容易になります。 タイム ゾーンが更新されると、タイム ゾーンが変更される前に問題の時刻が発生した場合でも、現在のタイム ゾーン設定がすべてのタイム 操作に適用されます。 そのため、UTC 時刻を格納し、現在のローカル タイム ゾーンに変換することをお勧めします。

SetDynamicTimeZoneInformation 関数を使用して、現在の年の移行日を設定できます。 将来の移行日を設定するには、レジストリ データにエントリを追加する必要があります。 動的夏時間の設定は、次のレジストリ キーに格納されます。

HKEY_LOCAL_MACHINE
   SOFTWARE
      Microsoft
         Windows NT
            CurrentVersion
               Time Zones
                  time_zone_name
                     Dynamic DST

動的 DST キーには、次のレジストリ値が含まれます。

レジストリ値 Type 説明
FirstEntry REG_DWORD 表の最初の年。
LastEntry REG_DWORD テーブル内の最後の年。
year1 REG_BINARY 次のタイム ゾーン情報。
typedef struct _REG_TZI_FORMAT
{
    LONG Bias;
    LONG StandardBias;
    LONG DaylightBias;
    SYSTEMTIME StandardDate;
    SYSTEMTIME DaylightDate;
} REG_TZI_FORMAT;
year2 REG_BINARY REG_TZI_FORMAT構造体。
憧れる REG_BINARY REG_TZI_FORMAT構造体。
 

タイム ゾーン キーのその他の値の詳細については、「TIME_ZONE_INFORMATION」を参照してください。

StandardNameDaylightName の両方が、現在のユーザーの既定の UI 言語に従ってローカライズされます。

要件

   
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ | UWP アプリ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリ | UWP アプリ]
Header timezoneapi.h (Timezoneapi.h、Windows.h を含む)

関連項目

GetDynamicTimeZoneInformation

SYSTEMTIME

SetDynamicTimeZoneInformation