python - 在 Python 中从 dateutil.parser.parse 获取时区

标签 python datetime timezone python-dateutil

尝试用时区信息解析日期时间字符串并获取 utc 偏移量

from dateutil.parser import parse as parse_date
s = '2017-08-28 06:08:20,488 CDT'
dt = parse_date(s)
print(dt.utcoffset())  # prints `None`

为什么 utcoffset 返回 None 而不是 -5 作为偏移量?

最佳答案

来自datetime docs :

If tzinfo is None, returns None

在您的代码中,dt.tzinfoNone,所以时区信息没有被parse_date 解析到dt。您的日期时间 dt 是“天真的”(没有时区信息)。

根据 dateutil docs ,您可以将自己的时区信息作为 tzoffsettzfile 传递给 parse_date:

tzinfos = {"CDT": -21600}
dt = parse_date('2017-08-28 06:08:20 CDT', tzinfos=tzinfos)
dt.tzinfo #tzoffset('CDT', -21600)

from dateutil import tz
tzinfos = {"CDT": tz.gettz('US/Central')}
dt = parse_date('2017-08-28 06:08:20 CDT', tzinfos=tzinfos)
dt.tzinfo #tzfile('/usr/share/zoneinfo/US/Central')

或者您可以将时区偏移量编码到字符串中:

dt = parse_date('2017-08-28 06:08:20-06:00')
dt.tzinfo #tzoffset(None, -21600)

关于python - 在 Python 中从 dateutil.parser.parse 获取时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45988363/

相关文章:

python - 检查 python 对象是否可以解释为实数 [python]

php - PHP 中每个循环的日期重复两次

Java:UTC/GMT+0 的时区随机显示名称

python - 检查数据库中的列是否有值

python - XGBRegressor 评分方法返回奇怪的值

24 小时前的 Javascript 相对时间等作为时间

sql - T-SQL 选择每日总计但每日截止时间不是午夜

java - 在应用程序中处理多个时区

timezone - 在现有的高流量网络应用程序中引入用户特定时区?

python - matlab 卷积 "same"到 numpy.convolve