SetTimeZoneInformation

現在のタイムゾーン設定を設定する。これらは協定世界時 (UTC) からローカル時刻への変換を制御する。

SetTimeZoneInformation lpTimeZoneInformation

lpTimeZoneInformation : [var] 新しい設定を含む TIME_ZONE_INFORMATION 構造体へのポインタ。

(プラグイン / モジュール : kernel32.dll)

解説

現在のタイムゾーン設定を設定する。これらは協定世界時 (UTC) からローカル時刻への変換を制御する。

[戻り値]
関数が成功した場合、戻り値は 0 以外である。関数が失敗した場合、戻り値は 0 となる。拡張エラー情報を取得するには
GetLastError を呼ぶ。

[備考]
本関数が成功するためにはアプリケーションが SE_TIME_ZONE_NAME
特権を持っている必要がある。この特権は既定で無効である。AdjustTokenPrivileges を使って
SetTimeZoneInformation を呼び出す前に有効化し、呼び出し後に無効化する。詳細は Running with
Special Privileges を参照。Windows Server 2003 と Windows XP/2000
ではアプリケーションは SE_SYSTEMTIME_NAME 特権を持っている必要がある。> [!IMPORTANT] > Windows
Vista と Windows Server 2008 以降の現行 Windows では、システムタイムゾーン情報を設定するには
SetTimeZoneInformation の代わりに SetDynamicTimeZoneInformation
を呼ぶこと。SetDynamicTimeZoneInformation は Windows
レジストリの動的データが提供する標準時と夏時間の変更履歴をフルにサポートする。SetTimeZoneInformation
を使うとシステムの動的夏時間サポートが無効化され、Windows
のタイムゾーン設定で「現在のタイムゾーンが認識できません。有効なタイムゾーンを選択してください。」と表示される。タイムゾーンが変わったことを
Explorer に通知するには WM_SETTINGCHANGE メッセージを送る。UTC とローカル時刻の変換はすべて UTC =
ローカル時刻 + バイアス という式に基づく。バイアスは UTC とローカル時刻の差(分単位)である。

情報

プラグイン / モジュールkernel32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の kernel32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_kernel32_gen2.hs