我有一個日期,我需要使它感知時區。pytz和astimezone()不能應用到天真的日期時間
local_tz = timezone('Asia/Tokyo')
start_date = '2012-09-27'
start_date = datetime.strptime(start_date, "%Y-%m-%d")
start_date = start_date.astimezone(local_tz)
now_utc = datetime.now(timezone('UTC'))
local_now = now_utc.astimezone(local_tz)
我需要找到,如果這是真的:
print start_date>local_now
但我得到這個錯誤。
start_date = start_date.astimezone(local_tz)
ValueError: astimezone() cannot be applied to a naive datetime
我把utc轉換成東京沒有問題。我需要在東京熟悉start_date時區的廣告。
由於
[pytz docs](http://pytz.sourceforge.net/)說,使用tzinfo屬性直接失敗了許多時區。應該使用tz.localize()來代替。 – jfs
@JFSebastian作爲一個很好的例子,它可以如何嚴重失敗看到http://stackoverflow.com/questions/11442183/pytz-timezone-shows-weird-results-for-asia-calcutta並注意到它沒有任何關係與DST。 –
@ J.F.Sebastian:有趣。更新了答案。 –