日期时间忽略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)?

在使用利用夏令时的 Python 时区时,应该传递啥 tzinfo?

日期时间模块datetime

导入日期时间与从日期时间导入日期时间开始