如何为 pytz 处理 POSIX 时区信息(如 CST)?
Posted
技术标签:
【中文标题】如何为 pytz 处理 POSIX 时区信息(如 CST)?【英文标题】:How to handle POSIX timezone information (like CST) for pytz? 【发布时间】:2020-07-17 04:39:33 【问题描述】:我有时区字符串'CST'
并尝试在pytz
中使用它。
不幸的是,这失败了:
cst = pytz.timezone('CST')
File "/home/user/venv/numba/lib/python3.6/site-packages/pytz/__init__.py", line 181, in timezone
raise UnknownTimeZoneError(zone)
pytz.exceptions.UnknownTimeZoneError: 'CST'
我应该怎么做才能避免这个错误?
【问题讨论】:
相关:How to get system timezone setting and pass it to pytz.timezone? 【参考方案1】:CST
本身不是有效的时区标识符。
无法知道CST
是被解释为(美国)“中部标准时间”(UTC-6)、“古巴标准时间”(UTC-5)还是“中国标准时间”( UTC+8)。
改为传递完全限定的基于位置的IANA time zone identifier,例如America/Chicago
、America/Havana
或Asia/Shanghai
。
【讨论】:
【参考方案2】:import pytz
def valid_timezone(timezone):
try:
pytz.timezone(timezone)
except pytz.exceptions.UnknownTimeZoneError:
return False
return True
if valid_timezone('CST'):
# go ahead...
pass
else:
# not supported timezone..
pass
【讨论】:
请不要只发布代码作为答案,还要解释您的代码的作用以及它如何解决问题的问题。带有解释的答案通常质量更高,更有可能吸引投票。以上是关于如何为 pytz 处理 POSIX 时区信息(如 CST)?的主要内容,如果未能解决你的问题,请参考以下文章