什么是当地时区

时间:2012-08-12 20:32:33

标签: python datetime timezone

假设服务器(gae)位于美国西海岸(PST),预约在纽约市(EST)上午10:00,芝加哥(CST)的一个人正在使用他的设备知道时间在纽约的任命。

芝加哥CST设备的人怎么能看到约会是在上午10点,当她去了EST的网站时,并且在MST的开发人员如何在日期时间设置参数,时间和日历使用python?

此外,什么时区是“当地时间”?

1 个答案:

答案 0 :(得分:2)

第三方模块pytz提供了一种在时区之间进行转换的简便方法。例如,

import datetime as dt
import pytz

utc = pytz.utc
western = pytz.timezone('US/Pacific')
newyork = pytz.timezone('America/New_York')
chicago = pytz.timezone('America/Chicago')

假设某人在纽约上午10点创建了约会:

date = dt.datetime(2012, 8, 12, 10)    # naive datetime
print(date)
# 2012-08-12 10:00:00  

# localize converts naive datetimes to timezone-aware datetimes.
date_in_newyork = newyork.localize(date)  # timezone-aware datetime
print(date_in_newyork)
# 2012-08-12 10:00:00-04:00

西海岸的服务器应以UTC格式存储此日期时间:

# astimezone converts timezone-aware datetimes to other timezones.
date_in_utc = date_in_newyork.astimezone(utc)
print(date_in_utc)
# 2012-08-12 14:00:00+00:00

现在当芝加哥的人想知道约会的时间时,服务器可以将UTC转换为芝加哥时间,纽约时间或其他任何时间:

date_in_chicago = date_in_utc.astimezone(chicago)
print(date_in_chicago)
# 2012-08-12 09:00:00-05:00

date_in_newyork2 = date_in_utc.astimezone(newyork)
print(date_in_newyork2)
# 2012-08-12 10:00:00-04:00