pytz.timezone 显示亚洲/加尔各答的奇怪结果? [复制]
Posted
技术标签:
【中文标题】pytz.timezone 显示亚洲/加尔各答的奇怪结果? [复制]【英文标题】:pytz.timezone shows weird results for Asia/Calcutta? [duplicate] 【发布时间】:2012-07-11 15:12:21 【问题描述】:可能重复:Python datetime object show wrong timezone offset
import pytz, datetime
pytz.timezone("Asia/Calcutta")
打印以下内容:
< DstTzInfo 'Asia/Calcutta' HMT+5:53:00 STD >
为什么不是 05:30?我在时区 America/Los_Angeles。
【问题讨论】:
【参考方案1】:时区随时间变化。根据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>)
【讨论】:
我相信更疯狂的偏移更接近现实:加尔各答经度:88.369 度。现在得到时间偏移: (88.369/180)x12=5.89 大约转换为 5 小时 53 分钟。当然,现实一定让每个人都过得很艰难,因此现在四舍五入。 这不是法律实际制定的时间偏移量。它只是该区域所覆盖区域的Local Mean Time (LMT) 的反映。你可以在 tz 源数据here 中看到这一点。以上是关于pytz.timezone 显示亚洲/加尔各答的奇怪结果? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
pytz.timezone 显示亚洲/加尔各答的奇怪结果? [复制]
`datetime.now(pytz timezone)` 啥时候失败?
汇合:Hdfs 沉入 avro 格式,但在 hive 中读取 avro 文件时,我的时间比“时区”提前 5:30 小时:“亚洲/加尔各答”