有效问题;对于这样的事情,最好不要使用任意代码。
您可以简单地使用
values of
name
attribute
CLDR使用:
<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数据定义中使用的方法,该方法包括使用扩展
BCP47
("
用于识别语言的标签
”)调用
RFC6067
用于“使用语言标记识别基于Unicode区域设置的变体。此扩展的“singleton”标识符为“u”。例如,泰语由
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
; 即
{ 'year': 1392, 'month': 6 , 'day': 31 , 'calendar': 'en-u-ca-persian' }