hor*_*oje 8 java locale localization
使用哪一个?
final Locale locale = Locale.forLanguageTag("en-US");
Run Code Online (Sandbox Code Playgroud)
或者
final Locale locale = new Locale("en", "US");
Run Code Online (Sandbox Code Playgroud)
当您查看它们的实现时,它们都有大量代码,我无法从这些代码中看出哪一个更快或应该首选。
由于我将它用于对 Web 应用程序的每个请求,因此很高兴知道哪一个更适合我的情况。
Locale
类为常用的语言环境提供了许多常量:Locale.CANADA
, Locale.CANADA_FRENCH
, Locale.CHINA
,Locale.UK
等。
最好使用静态字段,而不是通过创建英语作为语言和美国作为国家/地区的新语言环境实例new Locale("en", "US")
Locale.US
。
有三个重载构造函数允许您创建一个Local
根据语言、国家/地区和变体创建对象。
如果您对这些信息足够了解,请使用构造函数。
\n注意:构造函数调用总是创建一个新的构造函数调用总是在内存中
\n静态方法允许通过提供IETF BCP 47 语言标签Locale#forLanguageTag()
来构造 的实例(另请参阅RFC 4647“语言标签匹配”和RFC 5646“用于识别语言的标签”Locale
)。
使用除了语言和国家/地区之外的语言标签,您可以指定各种详细信息,例如日历、数字系统、货币。
\n注:( forLanguageTag()
以及Local.Builder
)解析完成后,从缓存中提供一个实例(如果已经存在)。
例子:
\nLocale buddhistCal = Locale.forLanguageTag("en-EN-u-ca-buddhist");\nLocale arabicNum = Locale.forLanguageTag("en-EN-u-nu-arab");\nLocale thaiNum = Locale.forLanguageTag("en-EN-u-nu-thai");\n \nLocalDate date = LocalDate.now();\n \nSystem.out.println(date);\nSystem.out.println(date.format(DateTimeFormatter.ISO_DATE.localizedBy(buddhistCal)));\nSystem.out.println(date.format(DateTimeFormatter.ISO_DATE.localizedBy(arabicNum)));\nSystem.out.println(date.format(DateTimeFormatter.ISO_DATE.localizedBy(thaiNum)));\n
Run Code Online (Sandbox Code Playgroud)\n输出:
\nLocale buddhistCal = Locale.forLanguageTag("en-EN-u-ca-buddhist");\nLocale arabicNum = Locale.forLanguageTag("en-EN-u-nu-arab");\nLocale thaiNum = Locale.forLanguageTag("en-EN-u-nu-thai");\n \nLocalDate date = LocalDate.now();\n \nSystem.out.println(date);\nSystem.out.println(date.format(DateTimeFormatter.ISO_DATE.localizedBy(buddhistCal)));\nSystem.out.println(date.format(DateTimeFormatter.ISO_DATE.localizedBy(arabicNum)));\nSystem.out.println(date.format(DateTimeFormatter.ISO_DATE.localizedBy(thaiNum)));\n
Run Code Online (Sandbox Code Playgroud)\n
归档时间: |
|
查看次数: |
2278 次 |
最近记录: |