是否有国际(或广泛使用的)标准代码来指定日历系统的名称?
我正在开发一个应用程序,该应用程序(除其他外)在多个日历系统中存储和显示历史日期,例如公历、犹太历、回历等。存储日期时,我需要能够说出它所在的日历系统。
我可以发明自己的系统,但是否已经存在类似于 ISO 639 的语言?经过相当长的搜索后,我无法找到任何东西,但也许我一直在使用错误的术语。
是否有国际(或广泛使用的)标准代码来指定日历系统的名称?
我正在开发一个应用程序,该应用程序(除其他外)在多个日历系统中存储和显示历史日期,例如公历、犹太历、回历等。存储日期时,我需要能够说出它所在的日历系统。
我可以发明自己的系统,但是否已经存在类似于 ISO 639 的语言?经过相当长的搜索后,我无法找到任何东西,但也许我一直在使用错误的术语。
有效问题;最好不要对此类事情使用任意代码。
<key name="ca" description="Calendar algorithm key" alias="calendar">
<type name="buddhist" description="Thai Buddhist calendar"/>
<type name="chinese" description="Traditional Chinese calendar"/>
<type name="coptic" description="Coptic calendar"/>
...
<type name="islamicc" description="Civil (algorithmic) Arabic calendar" deprecated="true" preferred="islamic-civil" alias="islamic-civil"/>
</key>
但您也可以调整 CLDR 数据定义中使用的方法,该方法包括使用名为RFC6067的BCP47(“用于识别语言的标签”)的扩展,用于“使用语言标签识别基于 Unicode 区域设置的变体。“单例”标识符因为这个扩展是'u'”。例如,泰语语言由 标识。因此,将语言环境标识为 Thai 并支持佛教日历:th
th-u-ca-buddhist
th-u-ca-buddhist
| | |
| | +--> Calendar name (values in CLDR bcp47/calendar.xml).
| +-----> 2 char key defining extension to follow (here "ca" for calendar).
+--------> Identifies that extension U values are to follow.
几个扩展的用法示例:
fa-u-ca-islamic-rgsa
: 带有伊斯兰历法的波斯语,沙特阿拉伯目击事件。fa-u-ca-persian
: 波斯语与波斯历。fa_AF-u-ca-persian
:波斯语(阿富汗)与波斯历。显然,如果您的意图只是存储它所在日历的日期和标识符,您可以使用en
; IE
{ 'year': 1392, 'month': 6 , 'day': 31 , 'calendar': 'en-u-ca-persian' }