我有个约会,我需要让它知道时区。
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转换成东京没有问题。我需要在东京做好开始日期时区的广告。
谢谢
对于
pytz
时区,使用它们的.localize()
方法将原始的datetime
对象转换为具有时区的对象:对于没有DST转换的时区,将时区附加到原始对象的
datetime
对象也应该正常工作:有关详细信息,请参阅pytz文档的localized times and date arithmetic。
您可以使用
local_tz.localize(naive_dt, is_dst=None)
将原始日期时间对象转换为时区感知对象。is_dst=None
如果给定的本地时间不明确,则强制.localize()引发异常。如果使用的是Django Rest Framework,则可以重写DateTimeField类,如:
在序列化程序中这样使用:
希望这能帮助别人。
相关问题 更多 >
编程相关推荐