亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> java

Java 10 本地化增强:扩展 Unicode 语言标签与更新相关 API

JEP 314:Unicode 语言标签扩展

Java 7 引入 BCP 47 语言标签支持,但 Unicode 区域扩展仅限日历与数字。Java 10 依据 LDML 规范扩展 java.util.Locale 及相关类,新增 4 类扩展键:

键含义示例值
cu货币类型USD、EUR、CNY
fw一周的第一天mon、sun、sat
rg区域覆盖USZZZZ、CNZZZZ
tz时区America/New_York、Asia/Shanghai

语言标签示例:zh-CN-u-cu-CNY-fw-mon-tz-Asia/Shanghai

更新的核心 API

以下类/方法现支持解析与格式化新增扩展:

java.text.DateFormat::get*Instance
java.text.DateFormatSymbols::getInstance
java.text.DecimalFormatSymbols::getInstance
java.text.NumberFormat::get*Instance
java.time.format.DateTimeFormatter::localizedBy
java.time.format.DateTimeFormatterBuilder::getLocalizedDateTimePattern
java.time.format.DecimalStyle::of
java.time.temporal.WeekFields::of
java.util.Calendar::{getFirstDayOfWeek, getMinimalDaysInWeek}
java.util.Currency::getInstance
java.util.Locale::getDisplayName
java.util.spi.LocaleNameProvider

使用示例

import java.util.Locale;
import java.util.Currency;
import java.time.format.DateTimeFormatter;
import java.time.ZonedDateTime;

public class Demo {
    public static void main(String[] args) {
        // 带货币扩展的 Locale
        Locale locale = Locale.forLanguageTag("zh-CN-u-cu-CNY");
        Currency currency = Currency.getInstance(locale);
        System.out.println("Currency: " + currency.getCurrencyCode());  // CNY

        // 带时区扩展的 DateTimeFormatter
        Locale localeTz = Locale.forLanguageTag("en-US-u-tz-America/New_York");
        DateTimeFormatter fmt = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM)
                .localizedBy(localeTz);
        System.out.println("Formatted: " + ZonedDateTime.now().format(fmt));
    }
}

意义

java

  1. 精通 Java 运算符:类型、语法与实战示例
  2. Java 注释:类型、用法与最佳实践
  3. 精通 Java if…else:控制流全解析
  4. 精通 Java 增强 for 循环:语法、示例与最佳实践
  5. 精通 Java 字符串:创建、方法与最佳实践
  6. 精通 Java 接口:概念、实现与最佳实践
  7. 精通 Java 匿名内部类:定义、语法与实战示例
  8. 精通 Java Try-With-Resources:自动资源管理详解
  9. Java 注解详解:类型、放置位置与实战示例
  10. Java 断言实战指南:尽早发现 Bug 与保障代码可靠性
  11. 深入理解 Java Vector:用法、特性及与 ArrayList 的对比
  12. Java 10 本地化增强:扩展 Unicode 语言标签与更新相关 API