- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在通过 strptime 创建一个日期时间对象,通过 pytz 在“欧洲/马德里”时区设置为“2016-01-02 03:04:05”。然后我将其转换为 UTC。
为什么它会增加 15 分钟而不是减少 1 小时?
>>> import datetime
>>> import pytz
>>> d = datetime.datetime.strptime('2016-01-02 03:04:05', '%Y-%m-%d %H:%M:%S')
>>> d
datetime.datetime(2016, 1, 2, 3, 4, 5)
>>> d = d.replace(tzinfo=pytz.timezone('Europe/Madrid'))
>>> d
datetime.datetime(2016, 1, 2, 3, 4, 5, tzinfo=<DstTzInfo 'Europe/Madrid' LMT-1 day, 23:45:00 STD>)
>>> d.astimezone(pytz.utc)
datetime.datetime(2016, 1, 2, 3, 19, 5, tzinfo=<UTC>)
如果我不使用“Europe/Madrid”而是使用“CET”,它可以正常工作:
>>> d = d.replace(tzinfo=pytz.timezone('CET'))
>>> d
datetime.datetime(2016, 1, 2, 3, 4, 5, tzinfo=<DstTzInfo 'CET' CET+1:00:00 STD>)
>>> d.astimezone(pytz.utc)
datetime.datetime(2016, 1, 2, 2, 4, 5, tzinfo=<UTC>)
编辑 1:Python 版本为 2.7.11。 pytz 版本为 2015.7。
编辑 2:可能的解决方案是使用 d = pytz.timezone('Europe/Madrid').localize(d)
而不是 d = d.replace(tzinfo=pytz.时区('欧洲/马德里'))
:
>>> d = datetime.datetime.strptime('2016-01-02 03:04:05', '%Y-%m-%d %H:%M:%S')
>>> d
datetime.datetime(2016, 1, 2, 3, 4, 5)
>>> d = pytz.timezone('Europe/Madrid').localize(d)
>>> d
datetime.datetime(2016, 1, 2, 3, 4, 5, tzinfo=<DstTzInfo 'Europe/Madrid' CET+1:00:00 STD>)
>>> d.astimezone(pytz.utc)
datetime.datetime(2016, 1, 2, 2, 4, 5, tzinfo=<UTC>)
编辑 3:也许这是“使用标准日期时间构造函数的 tzinfo 参数‘不适用于’许多时区的 pytz”的实例? Source
最佳答案
是的,问题出在
d.replace(tzinfo=pytz.timezone('Europe/Madrid'))
它在马德里应用第一个已知的 UTC 偏移量(称为 LMT = 本地平均时间),比 UTC 晚 15 分钟(有效期至 1900 年),或者在这种情况下表示为 -1 天 +23:45
:
datetime.datetime(2016, 1, 2, 3, 4, 5, tzinfo=<DstTzInfo 'Europe/Madrid' LMT-1 day, 23:45:00 STD>)
使用
pytz.timezone('Europe/Madrid').localize(d)
改为:
datetime.datetime(2016, 1, 2, 3, 4, 5, tzinfo=<DstTzInfo 'Europe/Madrid' CET+1:00:00 STD>)
这将应用 2016 年有效的 UTC 偏移量,即 CE(S)T。
关于Python datetime + pytz 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35631578/
pytz的documentation说: Note that this instance [pytz.timezone('UTC')] is not the same instance (or imp
我通过 Debian Buster 安装了 pytz sudo pip install pytz 安装顺利完成。但是,当我尝试 import pytz python 抛出异常 import p
我正在尝试在 python 脚本中使用 pytz,用作 hadoop 流作业的映射器。 按照另一个线程中的建议,我尝试将 pytz 打包为 zip“pytz.mod”,并使用 zipimport 加载
这个问题在这里已经有了答案: Weird timezone issue with pytz (3 个答案) Python datetime object show wrong timezone of
这个问题在这里已经有了答案: Weird timezone issue with pytz (3 个答案) Python datetime object show wrong timezone of
这个问题在这里已经有了答案: Difference between datetime.combine() and pytz.localize() (1 个回答) Django: How to mak
我正在将一个简单的日期时间对象转换为另一个时区。但它不包括 DST(夏令时)。这就是我所做的: #my datetime object datetime_from #contains: 05, 07,
>>> import pytz >>> pytz.timezone('Asia/Hong_Kong') 7 小时 37 分钟的偏差?这有点奇怪,有人遇到过同样的问题吗? 事实上我在这之间有不同的行为
这个问题已经有答案了: Weird timezone issue with pytz (3 个回答) 已关闭 4 年前。 在排除另一个问题时,我发现 pytz 中的时区“亚洲/ Jakarta ”与
在我的应用程序中,我使用普通的日期时间对象。在我的模板中: {% load tz %} {{datetimeobject|timezone:"Europe/Paris"}} {% timezone "
我在使用 Python 的 pytz 时遇到了一个非常奇怪的问题:它似乎在我的系统(MacOS X 10.8.5,系统 Python 2.7.5)上有一个不完整的时区目录。 >>> from pytz
我在使用 pytz 的 .localize() 函数时遇到了一些奇怪的问题。有时它不会对本地化的日期时间进行调整: .localize 行为: >>> tz >>> d datetime.datet
我正在阅读不完整的 pytz documentation我一直坚持理解其中的一部分。 Converting between timezones also needs special attention
我在 import pytz 不起作用的环境 (AWS Lambda) 中工作。 环境设置为 UTC。 在此环境下如何获取美国太平洋时区的当前时间? 我需要一些简单且维护成本低的东西。以某种方式强制
如果我在这样的列中有一堆日期时间(UTC): 63058 01/22/2018 11:00:00 63059 01/22/2018 12:00:00 63060 01/22/2018
虽然我确定 pytz 已安装在我的 virtualenv 中,并且我确定我的 PyCharm 项目正在使用上述 virtualenv,但 IDE 不断提示: 当我检查 virtualenv 时: (m
我有一个数据集,其中包含来自纽约的日期/时间戳,没有时区信息。不会记录 EDT 或 EST。 日期包括几年的每日数据,因此它包括: 东部夏令时时区 东部时区 我想将这些日期/时间戳转换为法兰克福时间。
我有以下命令: {'actual': {Timestamp('2013-02-20 13:30:00'): 0.93000000000000005}} 我把它改成 df: df= pd.DataFra
这个问题在这里已经有了答案: Python datetime object show wrong timezone offset (2 个答案) 关闭 8 年前。 我正在使用 '2014.2' 版本
据我了解,repr() 的目的是返回一个字符串,该字符串可用于作为 python 命令进行评估并返回相同的对象。不幸的是,pytz 似乎对这个函数不太友好,尽管它应该很容易,因为 pytz 实例是通过
我是一名优秀的程序员,十分优秀!