时区感知日期

Posted

技术标签:

【中文标题】时区感知日期【英文标题】:Timezone aware dates 【发布时间】:2019-01-18 12:55:28 【问题描述】:

我对以下内容有点困惑:

import datetime
import pytz
str(datetime.datetime.now(pytz.timezone('US/Pacific')))
str(datetime.datetime.now().replace(tzinfo=pytz.timezone('US/Pacific')))

在第一种情况下,我得到: '2018-08-10 14:21:04.129204-07:00' 在第二种情况下,我得到 '2018-08-10 14:21:17.856903-07:53' 我有点困惑为什么不返回相同的时间偏移量?

【问题讨论】:

另见***.com/questions/24856643/… 【参考方案1】:

在你传递的第一行

pytz.timezone('US/Pacific')

作为

的函数参数
datetime.datetime.now() 

在第二行你是

.replacing 

归来

 datetime.datetime.now()

pytz.timezone('US/Pacific')

我建议你研究一下 pytz 库文档:https://pypi.org/project/pytz/

我的猜测是 pytz 输出的第一个函数被 datetime.now() 格式化为人类可读

在第二行中你只是替换了返回,因此显示为 Unix 时间

【讨论】:

以上是关于时区感知日期的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Python 中结合时区感知日期和时间?

Python - 给定一个时区感知的日期时间对象,我如何获得一个时区朴素的 UTC 日期时间对象?

Python 中的日期可以感知时区吗?

如何在 SqlAlchemy / Mysql 中存储时区感知日期时间值?

如何在 django 中获取时区感知日期?

在 Python 中获取随机时区感知日期时间