Python 的時間轉換速查

寫系統,機器在國外,時區很重要,算起來很麻煩,所以寫下這張表,轉換起來比較快。

把握一個原則:資料庫只保存UTC,其他要轉再轉;datetime 物件可以分為「感知型」與「非感知型」,簡單來說就是感知型知道自己的時區,所以可以用內建方法轉來轉去。

import datetime

# 建立時區資料
t = datetime.timezone(datetime.timedelta(hours=8))

# 建立一些簡單型的物件
simple_datetime = datetime.datetime.strptime("2021/03/14 15:02:00", '%Y/%m/%d %H:%M:%S')
simple_utc_datetime = datetime.datetime.utcnow()
simple_local_datetime = datetime.datetime.now()

# 建立感知型物件
# 1.為簡單型物件加上時區
smart_datetime = simple_datetime.replace(tzinfo=t)
> datetime.datetime(2021, 3, 14, 15, 2, tzinfo=datetime.timezone(datetime.timedelta(seconds=28800)))
# 2.在擷取系統時間時告知時區
smart_now_datetime = datetime.datetime.now(t)

# 移動感知型物件的位置,時間也一併調整
tz_uk = datetime.timezone(datetime.timedelta(hours=0))
smart_uk_local_datetime = smart_now_datetime.astimezone(tz_uk)
原本: 2021/03/14 15:02:00 UTC+8
後來: 2021/03/14 07:02:00 UTC+0

發佈留言