【发布时间】:2016-10-21 23:01:03
【问题描述】:
我一直在阅读 python 的日期时间文档,似乎有一些没有明确提及的内容。
date = datetime.datetime(2014,10,1,11,45,30)
上述日期将在哪个时区? UTC?
如果我必须确保上述日期保留在 EST 中,可以做什么。我不清楚这里的 tzinfo 对象?
如果我必须根据纬度和经度将这些日期时间转换为其他时区,我该怎么办?
【问题讨论】:
我一直在阅读 python 的日期时间文档,似乎有一些没有明确提及的内容。
date = datetime.datetime(2014,10,1,11,45,30)
上述日期将在哪个时区? UTC?
如果我必须确保上述日期保留在 EST 中,可以做什么。我不清楚这里的 tzinfo 对象?
如果我必须根据纬度和经度将这些日期时间转换为其他时区,我该怎么办?
【问题讨论】:
您的代码将创建一个“时区幼稚”的日期时间对象。这意味着 - 没有时区。它将根据使用地点被解释为当地时间。
如果您想设置时区,请尝试使用pytz 库。
import pytz # 3rd party: $ pip install pytz
u = datetime.utcnow()
u = u.replace(tzinfo=pytz.utc) # NOTE: it works only with a fixed utc offset
# Then you can change timezones, e.g. http://www.timezoneconverter.com/cgi-bin/zoneinfo?tz=America/New_York
print u.astimezone(pytz.timezone("America/New_York"))
至于将纬度/经度转换为时区,这不是一项简单的任务。这是讨论可能解决方案的question。
【讨论】: