zoneinfo:啥是新的 right 和 posix zone-name 前缀?

Posted

技术标签:

【中文标题】zoneinfo:啥是新的 right 和 posix zone-name 前缀?【英文标题】:zoneinfo: what are the new right and posix zone-name prefixes?zoneinfo:什么是新的 right 和 posix zone-name 前缀? 【发布时间】:2021-08-25 08:18:55 【问题描述】:

由Internet Assigned Numbers Authority 维护的最新zoneinfo database 包含两个新前缀,“posix”和“right”。例如,以前只有Asia/Kolkata,新数据库添加了posix/Asia/Kolkataright/Asia/Kolkata

这个数据库在它的第一个开发者之后也被称为 Olson 数据库,或 tz 数据库。

这些新添加的前缀是什么意思,它们的实际作用是什么?是否可以从呈现给用户的时区选择列表中安全地过滤掉它们中的任何一个?

全球化网络应用程序(例如 WordPress)使用这些区域信息名称作为用户偏好选项列表。他们在mysql's timezone support setup。

【问题讨论】:

有人编辑了我的标签以添加python。没关系,但我的问题更笼统。 【参考方案1】:

right(或leap,也zoneinfo-leaps)是关于使用时间,包括闰秒。 Posix(也是 zoneinfo-posix,通常只是 `zoneinfo)是关于使用 POSIX 时间,所以不考虑闰秒。

理论上你不应该选择,系统会为你选择它,考虑到时间是如何存储在系统中的。

但是不,对于用户,您不应该使用 zoneinfo 中的数据。

引用 Python 文档:

注意

这些值并非旨在向最终用户公开;对于面向用户的元素,应用程序应该使用 CLDR(Unicode 通用区域设置数据存储库)之类的东西来获取对用户更友好的字符串。另请参阅 ZoneInfo.key 上的警告说明。

注意:有些区域已经过时,文字是简单的 ASCII,所以不能正确表示城市名称,英文版并不总是最好的。

【讨论】:

【参考方案2】:

right/ 前缀标记考虑leap seconds 的时区。

posix/ 前缀使用 POSIX time 标记时区。这些时区实际上与不带前缀的时区相同。

在向用户显示时区选项时过滤掉前缀名称可能很好(例如,WordPress 就是这样做的)。如果你是一名天文学家,你的 parsecage 可能会有所不同。

【讨论】:

以上是关于zoneinfo:啥是新的 right 和 posix zone-name 前缀?的主要内容,如果未能解决你的问题,请参考以下文章

Django 4.0 正式发布,新的密码哈希器和 Redis 缓存后端

多个左连接 - 啥是“左”表?

MySql字段截取

python - 前缀和算法

Android App Bundle - 我的密钥不被接受,即使它是新的

看板是新的Scrum吗