import pytz, datetime
pytz.timezone("Asia/Calcutta")
打印以下内容:
< DstTzInfo 'Asia/Calcutta' HMT+5:53:00 STD >
为什么不是05:30呢?我在时区America / Los_Angeles。
答案 0 :(得分:23)
多年来,时区发生了变化。根据{{3}},该区域的原始偏移量为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>)