Java 国际化与格式化
本文包含如下内容:

  1. Java 国际化的思路
  2. java 支持的国家和语言
  3. 完成程序国际化
  4. 使用MessageFormat 处理包含占位符的字符串
  5. 使用类文件代替资源文件
  6. 使用 NumberFormat 格式化数字
  7. 使用 DateFormat 格式化日期、时间
  8. 使用 simpleDataFormat 格式化日期
  9. 使用DataTimerFormatter 完成格式化
  10. 使用 DateTimeFormatter 解析字符串

1.Java 国际化的思路

思路:将程序中的标签、提示等信息放在资源文件里,程序需要支持哪些国家、语言环境,就提供相应的资源文件。资源文件是 key-value 对,每个资源文件的 key 是不变的,但 value 随着不同的国家、语言而改变,如下图所示:
Java 国际化与格式化
Java 国际化提供三个类来完成:

  1. java.util.ResourceBundle:用于加载国家、语言资源包。
  2. java.util.Locale :用于封装特定的国家/区域、语言环境
  3. java.text.MessageFormat :用于格式化带占位符的字符串。

资源文件中,key 是程序使用的部分,value 是程序界面的显示字符串。
资源文件的命名有如下三种方式:
Java 国际化与格式化
其中 baseName 是资源文件的基本名,用户可随意指定;而 language 和 country 都不可随意变化,必须是 java 支持的语言和国家。

2. Java 支持的语言和国家

Java 国际化与格式化
下面程序示范了如何获取 Java 支持的国家和语言:
Java 国际化与格式化Java 国际化与格式化

3. 完成程序国际化

Java 国际化与格式化Java 国际化与格式化Java 国际化与格式化

4. 使用 MessageFormat 处理包含占位符的字符串

Java 国际化与格式化
Java 国际化与格式化

5. 使用类文件代替资源文件

Java 国际化与格式化

6. 使用 NumberFormat 格式化数字

Java 国际化与格式化
Java 国际化与格式化
Java 国际化与格式化Java 国际化与格式化

7. 使用 DateFormat 格式化日期、时间

Java 国际化与格式化Java 国际化与格式化
程序运行结果如下图所示:
Java 国际化与格式化

8. 使用 SimpleDateFormat 格式化日期

Java 国际化与格式化Java 国际化与格式化Java 国际化与格式化Java 国际化与格式化

9. 使用DateTimeFormatter 完成格式化

这是 Java 8 新增的内容,相当于前面介绍的 DateFormat 与 SimpleFormat 的合体,功能强大。
Java 国际化与格式化
Java 国际化与格式化Java 国际化与格式化Java 国际化与格式化

10. 使用 DateTimeFormatter 解析字符串

Java 国际化与格式化
Java 国际化与格式化

相关文章: