gpt4 book ai didi

python - 使用日期时间的 UTC 到 CST 转换不正确

转载 作者:行者123 更新时间:2023-12-01 06:21:41 33 4
gpt4 key购买 nike

我在从 python 模块 datetime 进行 UTC 到 CST 转换时遇到一个小问题。似乎起飞了 5 小时 51 分钟,而不是偶数 6 小时。请参阅代码。

import datetime as dt
from datetime import datetime
from pytz import timezone
import pytz

time_stamp = '18:42:14'
utc = timezone('UTC')
central = timezone('US/Central')
published_time = datetime.strptime(time_stamp, '%H:%M:%S')
published_gmt = published_time.replace(tzinfo=utc)
published_cst = published_gmt.astimezone(central)
actual_time_published = published_cst.strftime('%I:%M:%S %p')
print(time_stamp)
print(published_time)
print(published_cst)
print('Time: '+actual_time_published)

终端输出为:

18:42:14
1900-01-01 18:42:14
1900-01-01 12:51:14-05:51
Time: 12:51:14 PM

最佳答案

出于某种原因,Python 时区库认为美国/中部的 UTC 偏移量为 -05:51,直到 1901-12-13T20:45:52Z - 那时它切换到 -06:00。

时区规则实际上将其设置为 -05:50:36(即比 UTC 晚 5 小时 50 分钟 36 秒),直到 1883-11-18T18:00:00Z,此时它应该变为 -06 :00,所以图书馆肯定做错了事情。

但是,更重要的是,您试图仅在一次上执行时区转换,这是一件坏事。您应该始终对完整的日期/时间值执行时区转换,因为这是唯一有意义的事情。在大多数时区,一天中的同一时间在不同日期会有不同的偏移量。

无论如何,IANA 时区数据库只有在 1970 年之后才会真正准确,因此即使图书馆在 1901 年没有正确遵循该数据库,该年的数据也可能是错误的。我怀疑你的真实数据不是 1900 年左右,而是一个更近的日期——此时图书馆和数据库更有可能是正确的。因此,请确保使用正确的日期,问题就会(我怀疑)消失。

关于python - 使用日期时间的 UTC 到 CST 转换不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60327338/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com