背景
OSS活動をしていたときに、コメントで「タイムゾーンを'America/Denver'に設定した場合はどうなる?」といただいた。
調べてみると、該当のファイルでは、time.timezoneでUTCからのオフセットを取得していたため、time.timezoneの参照先とそのタイムゾーンの変更方法について、Pythonのドキュメントを元に調べた。備忘録として記事に残す
結論
- time.timezoneはtzset()が実行されたタイムゾーンが設定される
- tzset()は環境変数‘TZ’で設定されたタイムゾーンが設定される
- os.environ[‘TZ’]は、
/usr/share/zoneinfo
にある相対パスを読み取りタイムゾーンを設定することが可能
実装例
該当するファイルの先頭に以下を追加すれば良い
import os
import time
os.environ['TZ'] = 'America/Denver'
time.tzset()
なお、設定した環境変数は、そのPythonプログラムの中でのみ有効。システムの環境変数が書き変わるわけではないのでご安心を。