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 返回的显示名称取决于每个区域设置提供程序提供的本地化数据。