假设时区名是 America/Halifax, 如何获取对应的 GMT格式
timezone = "America/Halifax"
# 输出 GMT-04:00
对时区这一块子不太熟悉, 求教! 感谢
假设时区名是 America/Halifax, 如何获取对应的 GMT格式
timezone = "America/Halifax"
# 输出 GMT-04:00
对时区这一块子不太熟悉, 求教! 感谢
|
hsfzxjyFeb 14, 2022 via Android
1
用 pytz
|
|
shylockhgFeb 14, 2022
2
iana timezone database
|
|
julyclydeFeb 14, 2022
3
这俩不是固定对应啊
|
|
billgongFeb 15, 2022 via iPhone
5
@oIMOo 楼上说的没错,确实是不对应。比如 Australia/Melbourne 因为有夏令时,UTC+10/UTC+11 都是对的
所以时区能用 tzdata 就用 tzdata ,需要计算时差的情况用库解决,不要直接算绝对值。 我就遇到个经典的例子,之前用某 SaaS 的 API 写 automation ,时区用 Australia/Melbourne 不行,非得 Australia/Sydney 否则报错(这俩地方现今都是 AEST/AEDT ,但历史上有细微差别),我估计就是他们用的某个 vendor lib 不兼容 tzdata ,其中有时区转译层导致的。 |
|
6
|
|
8
@billgong 感谢回复, 使用场景是给用户给账户设置时区, 但是需要给他展示选择 ( GMT-07:00)America/Dawson_Creek
这种格式 |
|
julyclydeFeb 15, 2022
10
@vegetableChick 对用户来说只有地方时区是有意义的,GMT 时差没有意义
|
|
gadfly3173Feb 15, 2022
11
|
|
12
@Livid 用这个包, 如果 `America/Los_Angeles` 现在是 `GMT-8` , 如果 3 月 23 再看就是 `GMT-7`吧?
|
|
13
@vegetableChick 它会帮你处理好时区之间的转换。你只需要用 to 就好。
|
|
billgongFeb 16, 2022
14
@vegetableChick 楼上说的都没什么问题
https://pythonhosted.org/pytz/#localized-times-and-date-arithmetic 如果初始化为环境当前时间的话,提取出来的 UTC offset 应该是将夏令时考虑在内的 |