次の方法で共有


地域時刻

システムでは内部的に UTC ベースの時刻が使用されますが、通常、アプリケーションでは、ローカル時刻(タイム ゾーンの日付と時刻) が表示されます。 そのため、正しい結果を得るには、関数が UTC ベースの時刻または現地時刻を受け取る必要があるかどうか、および関数が UTC ベースの時刻または現地時刻を返すかどうかを認識する必要があります。

現在のタイム ゾーン設定は、システムが UTC と現地時刻の間で変換する方法を制御します。 GetTimeZoneInformation 関数を使用して、現在のタイム ゾーン設定を取得できます。 この関数は、結果を TIME_ZONE_INFORMATION 構造体にコピーし、ローカル時刻が現在標準時か夏時間 (DST) かを示す値を返します。 SetTimeZoneInformation 関数を使用して、タイム ゾーン設定を設定できます。 年ごとに変化する夏時間の境界をサポートするには、GetTimeZoneInformationForYearGetDynamicTimeZoneInformation、および SetDynamicTimeZoneInformation関数使用します。

ローカル時刻を取得するには、GetLocalTime 関数を使用します。 GetLocalTime は、現在のタイム ゾーン設定に基づいてシステム時刻をローカル時刻に変換し、結果を SYSTEMTIME 構造体にコピーします。 SetLocalTime 関数を使用して、システム時刻を設定できます。 SetLocalTime は、システム時刻を設定する前にローカル時刻を指定し、UTC に変換することを前提としています。

SetLocalTime呼び出すと、システムは夏時間設定を含む現在のタイム ゾーン情報を使用して変換を実行します。 システムでは、設定する新しい時刻ではなく、現在の時刻の夏時間設定が使用されることに注意してください。 そのため、正しい結果を得るために、2 回目 SetLocalTime 呼び出します。最初の呼び出しで夏時間の設定が更新されました。

UTC ベースの時刻を現地時刻に変換するには、SystemTimeToTzSpecificLocalTime 関数を使用します。 ローカル時刻を UTC ベースの時刻に変換するには、TzSpecificLocalTimeToSystemTime 関数を使用します。