您正在本地化一個天真的datetime
。這意味着你有一個datetime
沒有時區信息;使用localize
就意味着你將時區信息附加在以前沒有的地方。比較:
>>> datetime.now()
datetime.datetime(2017, 4, 20, 14, 0, 0, 0)
>>> seoul.localize(datetime.now())
datetime.datetime(2017, 4, 20, 14, 0, 0, 0, tzinfo=<DstTzInfo 'Asia/Seoul' KST+9:00:00 STD>)
這是同一時間,曾經和曾經沒有時區信息。
如果你想獲得當前時間在首爾,你需要創建datetime
與時區:
>>> datetime.now(tz=seoul)
datetime.datetime(2017, 4, 20, 21, 0, 0, 0, tzinfo=<DstTzInfo 'Asia/Seoul' KST+9:00:00 STD>)
或者,你把它已經有一個時區的時間戳,並將其轉換:
>>> datetime.now(tz=timezone.utc).astimezone(seoul)
datetime.datetime(2017, 4, 20, 21, 0, 0, 0, tzinfo=<DstTzInfo 'Asia/Seoul' KST+9:00:00 STD>)
你不能從一個天真的時間戳(沒有時區)做一個時區轉換,因爲這本質上沒有任何意義。
謝謝!它現在適用於'datetime.now(tz = seoul)' – Justin