可能重复:
Python日期时间对象显示错误的时区偏移
import pytz, datetime
pytz.timezone("Asia/Calcutta")
打印以下内容:
< DstTzInfo 'Asia/Calcutta' HMT+5:53:00 STD >
为什么不是05:30?我在美国/洛杉矶时区。
时区随年份变化。根据http://www.prokerala.com/travel/timezones/Asia/Kolkata?mode=history该区域的原始偏移量为5.88888888889小时,即5小时53分钟。一旦您将区域指定为实际日期,pytz
将使用正确的偏移量和命名法。
>>> tz = pytz.timezone("Asia/Calcutta")
>>> tz
<DstTzInfo 'Asia/Calcutta' HMT+5:53:00 STD>
>>> tz.localize(datetime.datetime(1901, 7, 10, 12, 0))
datetime.datetime(1901, 7, 10, 12, 0, tzinfo=<DstTzInfo 'Asia/Calcutta' HMT+5:53:00 STD>)
>>> tz.localize(datetime.datetime(2012, 7, 10, 12, 0))
datetime.datetime(2012, 7, 10, 12, 0, tzinfo=<DstTzInfo 'Asia/Calcutta' IST+5:30:00 STD>)