本文包含如下内容:
- Java 国际化的思路
- java 支持的国家和语言
- 完成程序国际化
- 使用MessageFormat 处理包含占位符的字符串
- 使用类文件代替资源文件
- 使用 NumberFormat 格式化数字
- 使用 DateFormat 格式化日期、时间
- 使用 simpleDataFormat 格式化日期
- 使用DataTimerFormatter 完成格式化
- 使用 DateTimeFormatter 解析字符串
1.Java 国际化的思路
思路:将程序中的标签、提示等信息放在资源文件里,程序需要支持哪些国家、语言环境,就提供相应的资源文件。资源文件是 key-value 对,每个资源文件的 key 是不变的,但 value 随着不同的国家、语言而改变,如下图所示:
Java 国际化提供三个类来完成:
- java.util.ResourceBundle:用于加载国家、语言资源包。
- java.util.Locale :用于封装特定的国家/区域、语言环境
- java.text.MessageFormat :用于格式化带占位符的字符串。
资源文件中,key 是程序使用的部分,value 是程序界面的显示字符串。
资源文件的命名有如下三种方式:
其中 baseName 是资源文件的基本名,用户可随意指定;而 language 和 country 都不可随意变化,必须是 java 支持的语言和国家。
2. Java 支持的语言和国家
下面程序示范了如何获取 Java 支持的国家和语言:
3. 完成程序国际化
4. 使用 MessageFormat 处理包含占位符的字符串
5. 使用类文件代替资源文件
6. 使用 NumberFormat 格式化数字
7. 使用 DateFormat 格式化日期、时间
程序运行结果如下图所示:
8. 使用 SimpleDateFormat 格式化日期
9. 使用DateTimeFormatter 完成格式化
这是 Java 8 新增的内容,相当于前面介绍的 DateFormat 与 SimpleFormat 的合体,功能强大。