JEP 314:额外的 Unicode 语言标签扩展
概述
增强 java.util.Locale
和相关 API,以实现 BCP 47 语言标签的更多 Unicode 扩展。
目标
非目标
除以下描述的 Unicode 语言标记扩展外,其余的都将被忽略。
描述
从 Java SE 9 开始,支持的 BCP 47 U 语言标签扩展 为 ca
和 nu
。本 JEP 将增加对以下额外扩展的支持:
cu
(货币类型)fw
(一周的首日)rg
(区域覆盖)tz
(时区)
为了支持这些额外的扩展,将对以下 API 进行更改:
java.text.DateFormat::get*Instance
将基于扩展ca
、rg
和/或tz
返回实例java.text.DateFormatSymbols::getInstance
将基于扩展rg
返回实例java.text.DecimalFormatSymbols::getInstance
将基于扩展rg
返回实例java.text.NumberFormat::get*Instance
将基于扩展nu
和/或rg
返回实例java.time.format.DateTimeFormatter::localizedBy
将基于扩展ca
、rg
和/或tz
返回DateTimeFormatter
实例java.time.format.DateTimeFormatterBuilder::getLocalizedDateTimePattern
将基于扩展rg
返回模式字符串。java.time.format.DecimalStyle::of
将基于扩展nu
和/或rg
返回DecimalStyle
实例java.time.temporal.WeekFields::of
将基于扩展fw
和/或rg
返回WeekFields
实例java.util.Calendar::{getFirstDayOfWeek,getMinimalDaysInWeek}
将基于扩展fw
和/或rg
返回值java.util.Currency::getInstance
将基于扩展cu
和/或rg
返回Currency
实例java.util.Locale::getDisplayName
将返回包含这些 U 扩展显示名称的字符串java.util.spi.LocaleNameProvider
将具有针对这些 U 扩展键和类型的新的 SPI
风险与假设
Locale::getDisplayName
返回的显示名称取决于每个区域设置提供程序提供的本地化数据。