mar*_*lli 2 python timezone datetime pytz
我正在尝试将 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
Run Code Online (Sandbox Code Playgroud)
我很惊讶我得到了不同的结果Europe/Madrid
和Etc/GMT+1
。为什么是这样?应该Europe/Madrid
以不同的方式使用,或者这可能是一个错误?
一些东西:
\n\nEurope/Madrid
标准时间为 UTC+1,夏令时(又称夏令时)为 UTC+2。
Etc/GMT+1
全年为 UTC-1。请注意,该标志与您可能期望的相反。请参阅tzdata来源和Wikipedia 中的解释。
由于马德里在您提供的日期采用 UTC+1,因此如果您使用 ,您将获得该日期的相同结果Etc/GMT-1
。但是,我不建议这样做,因为您稍后会得到夏季日期的错误结果。
这些Etc/GMT\xc2\xb1X
区域主要用于不可定位的场景,例如跟踪海上船上的时间,而不是陆地上人口稠密的地点。