我有个约会,需要让它知道时区。

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/

10-10 11:05