在我正在处理的 Python 项目中,我希望能够获得 America/New_York 形式的“人类可读”时区名称,对应于系统本地时区,以显示给用户。我见过的每段访问时区信息的代码都只返回数字偏移量 (-0400) 或字母代码 (EDT),有时两者都返回。是否有一些 Python 库可以访问此信息,或者如果没有,将偏移量/字母代码转换为人类可读的名称?
如果有多个人类可读的名称对应于特定时区,则可能的结果列表或其中任何一个都可以,如果没有人类可读的名称对应于当前时区,我将采用异常或 None
或 []
或其他。
澄清一下:我不记得我最初写这个问题时的确切想法,但我 认为 我真正想要的是一种将时区变成人类可读名称的方法。我不认为这个问题是为了专门关注如何获取系统本地时区,但对于我想到的特定用例,恰好本地时区是我想要的名称。我不会编辑关于当地时区的问题,因为有两个方面的答案。
原文由 David Z 发布,翻译遵循 CC BY-SA 4.0 许可协议
最初写这个问题时可能还没有,但这里有一个片段来获得时区的官方名称:
此外,这可以与非天真的日期时间对象(又名日期时间,其中使用
pytz.<timezone>.localize(<datetime_object>)
或datetime_object.astimezone(pytz.<timezone>)
设置实际时区,如下所示:这当然是为了那些登陆这里的搜索引擎用户的启迪。 … 在 pytz 模块站点 查看更多信息。