Python Time Zone issue

紀錄遇到時間計算的問題

一支程式會判斷台灣的國定假日,然後進行排程的處理。因每天排程時間為 8:15 分,原本是以下的寫法進行判斷。

但因排程時間為 8:15 會導致程式多算到隔天的 15 分鐘,導致在 2024-09-16 這邊會被判斷成 2024-09-17 的國定假日。

1
datetime.utcnow()

程式原本的判斷

alt text

透過給定時間段後發現,多判斷 15 分鐘會判斷為節慶。

alt text

修改為精確的寫法為透過 pytz取得當天的時間段,而不是透過執行排程時間判斷。

1
2
3
def get_today():
tz = pytz.timezone("Asia/Taipei")
return datetime.now(tz).replace(hour=0, minute=0, second=0, microsecond=0)

alt text


Python Time Zone issue
https://phoebeho.com/sre/20240915/901849267/
作者
Phoebe
發布於
2024年9月15日
許可協議