Python的日期时间:基于lat_long转换为时区

时间:2016-06-20 15:51:17

标签: python date datetime

我一直在阅读python的日期时间文档,似乎很少有东西没有明确提到那里。

date = datetime.datetime(2014,10,1,11,45,30)

上述日期将在哪个时区? UTC?

如果我必须确保上述日期仍然在美国东部时间可以做什么。我在这里不清楚tzinfo对象吗?

如果我必须根据纬度和经度将这些日期时间转换为其他时区,我该怎么办?

1 个答案:

答案 0 :(得分:1)

您的代码将创建一个“timezone naive”日期时间对象。这意味着 - 没有时区。它将根据其使用位置被解释为当地时间。

如果您想设置时区,请尝试使用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"))

至于lat / lon转换为时区,这不是一项简单的任务。这是一个讨论可能解决方案的question