日期时间忽略tzinfo?
Posted
技术标签:
【中文标题】日期时间忽略tzinfo?【英文标题】:datetime ignores tzinfo? 【发布时间】:2017-12-07 00:59:35 【问题描述】:我可能误解了 tzinfo 的用途,但是我有一个日期时间对象 dt
我设法进入了这个表单:
datetime.datetime(2017, 7, 2, 20, 0, tzinfo=tzoffset('PDT', -7))
我试图表示上述日期为 2017 年 7 月 2 日 20:00 PDT。
现在,我想将该时间转换为 UTC,但是当我这样做时,它会输出 July 2nd 2017 20:00 UTC
的 UTC 时间戳,它不会应用 7 小时的差异。
例如:
>>> dt.timestamp()
1499025607.0
这是:Sunday, July 2, 2017 8:00:07 PM
还有
>>> dt.isoformat()
'2017-07-02T20:00:00-00:00:07'
我试过了
>>> dt.astimezone(pytz.UTC).timestamp()
1499025607.0
注意与dt.timestamp()
的时间戳相同
【问题讨论】:
关键问题是:如何进行转换? 可能的解决方案***.com/a/31977588/8150371 @fhossfel 已编辑 【参考方案1】:根据dateutil docs,你给tzoffset()
函数的参数是错误的。
tzinfo=dateutil.tz.tzoffset('PDT', -7)
创建一个偏移量为 7 秒的时区。
tzinfo=dateutil.tz.tzoffset('PDT', -7*60*60)
创建一个偏移量为 7 小时的时区。
【讨论】:
以上是关于日期时间忽略tzinfo?的主要内容,如果未能解决你的问题,请参考以下文章
.localize 和 tzinfo 之间的 Python 日期时间差异
带有 pytz 时区的日期时间。不同的偏移量取决于 tzinfo 的设置方式[重复]
如何实现“tzinfo”以将当前 GMT 偏移到 EST(GMT -4:00)?