gpt4 book ai didi

python - “欧洲/马德里”时区与 'Etc/GMT+1' 不匹配

转载 作者:太空宇宙 更新时间:2023-11-04 11:08:42 27 4
gpt4 key购买 nike

我正在尝试将 UTC 时间戳转换为西类牙时区的时间戳。

>>> import datetime as dt
>>> import pytz
>>> today = dt.datetime.utcfromtimestamp(1573516800)
datetime.datetime(2019, 11, 12, 0, 0)

>>> today.replace(tzinfo=pytz.timezone('Europe/Madrid')).timestamp()
1573517700.0

>>> today.replace(tzinfo=pytz.timezone('Etc/GMT+1')).timestamp()
1573520400.0

令我惊讶的是,Europe/MadridEtc/GMT+1 得到了不同的结果。为什么是这样? Europe/Madrid 是否应该以不同的方式使用,或者它可能是一个错误?

最佳答案

一些事情:

  • Europe/Madrid 标准时间为 UTC+1,夏令时为 UTC+2(又称夏令时)。

  • Etc/GMT+1 是全年的 UTC-1。请注意,该标志与您的预期相反。请参阅 tzdata 中的说明来源,和on Wikipedia .

  • 由于马德里在您提供的日期使用 UTC+1,因此如果您使用 Etc/GMT-1,您将获得与该日期相同的结果。但是,我不建议这样做,因为您稍后会得到错误的夏令时日期结果。

  • Etc/GMT±X 区域主要用于不可本地化的场景,例如跟踪海上船上的时间 - 不适用于陆地上的人口稠​​密地点。

  • 作为Mason's answer显示,您应该使用 localize 函数而不是 replace 来分配时区。这涵盖了in the pytz documentation .

关于python - “欧洲/马德里”时区与 'Etc/GMT+1' 不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58820847/

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