107.3標準
systemのtimezone設定は変更しない。
1回のdate commandだけTZ環境変数でUTCとして実行する。
適切なコマンドはどれか。
× 不正解
NAME=value command形式でTZを渡すと、そのcommand processと子processだけへtimezoneを適用できる。
詳細解説
正しい
TZ=UTC0 date '+%Z'一時環境代入により、そのdate processだけUTC0を使う。
正しい。command前のTZ=UTC0はdateの環境だけを変更し、systemの/etc/localtime等には触れない。
誤り
LANG=UTC0 date '+%Z'LANGはlocaleを指定し、timezoneそのものを切り替えない。
誤り。LANG=UTC0はlocale名として解釈され、date processのtimezoneをUTCへ変更する変数ではない。
誤り
date TZ=UTC0 '+%Z'TZを環境変数ではなくdateの位置引数へ渡している。
誤り。dateの後ろに置いたTZ=UTC0は環境代入にならず、dateへ渡すoperandとして扱われる。
誤り
timedatectl UTC0 date '+%Z'timedatectlはcommandを一時timezoneで包む形式ではない。
誤り。timedatectlは別commandを一時環境で実行するwrapperではなく、この引数形式も成立しない。
実際に確かめる
一時的な検証環境で実行できる例です。
TZ=UTC0 date '+%Z'期待される結果
UTC理解のポイント
- TZはtimezone環境変数
- command前代入は一時的
- system設定を変更しない
確認時の注意
- 確認環境: GNU date / POSIX TZ形式UTC0
基礎のおさらい
process単位
TZをcommand前に置けば親shellの値を変更せず、そのcommandと子processだけへ適用できる。
POSIX TZ
UTC0はUTCという名称とoffset 0を表すPOSIX形式で、zoneinfo識別子を使う形式とは表記規則が異なる。
問題IDKP-107-713
確認環境GNU date / POSIX TZ形式UTC0
最終技術確認2026-08-13
誤り・権利侵害を報告