如何判断ZoneInfo是否为别名?识别名称不同的同时区ZoneInfo
识别ZoneInfo别名对应的同一时区
你遇到的问题是因为ZoneInfo的==运算符默认比较的是时区的名称字符串,而非背后实际的时区规则。尽管Atlantic/Faeroe和Atlantic/Faroe是同一时区的别名,但名称不同,直接用==会返回False。
要判断两个ZoneInfo是否属于同一时区,可采用以下两种可靠方法:
- 比较
key属性:所有指向同一时区的别名,对应的key属性值完全相同。示例代码:a = ZoneInfo('Atlantic/Faeroe') b = ZoneInfo('Atlantic/Faroe') print(a.key == b.key) # 输出 True - 验证时区规则一致性:可以对比时区的UTC偏移、夏令时规则等,但
key属性是更直接高效的方式——它是时区的唯一标识,别名会统一映射到同一个key。
像EST和UTC这类本身就属于不同时区的实例,它们的key属性也会不同,用这种方法能准确区分。
内容的提问来源于stack exchange,提问作者Janus Troelsen
相关产品推荐
相关产品推荐

