現在のタイムゾーン設定を設定する。これらは協定世界時 (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 |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の kernel32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_kernel32_gen2.hs |