我有个约会,需要让它知道时区。
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
时区,请使用其.localize()
方法将一个简单的datetime
对象转换为带有时区的对象:
start_date = local_tz.localize(start_date)
对于没有DST转换的时区,将时区附加到朴素的
.replace()
对象的 datetime
method通常也应该起作用:start_date = start_date.replace(tzinfo=local_tz)
有关更多详细信息,请参见pytz文档的localized times and date arithmetic。
关于python - pytz和astimezone()不能应用于原始日期时间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12626045/