Cách dễ nhất xử lý timezone: module pytz. Cho phép tính toán timezone chính xác, cross-platform. pytz đưa Olson tz database vào Python. Giải quyết ambiguous time ở cuối daylight saving.
Cài đặt
$ pip install pytz
Ví dụ
from datetime import datetime
from pytz import timezone
fmt = "%Y-%m-%d %H:%M:%S %Z%z"
# Current time in UTC
now_utc = datetime.now(timezone('UTC'))
print(now_utc.strftime(fmt))
# 2024-01-15 10:30:45 UTC+0000
# Convert to Asia/Kolkata
now_asia = now_utc.astimezone(timezone('Asia/Kolkata'))
print(now_asia.strftime(fmt))
# 2024-01-15 16:00:45 IST+0530
Python 3.9+: zoneinfo (built-in)
from zoneinfo import ZoneInfo
from datetime import datetime
now = datetime.now(ZoneInfo('UTC'))
print(now.astimezone(ZoneInfo('Asia/Ho_Chi_Minh')))