国际化:让世界上每个人都能看懂。
Locale类(java.util包下):包括所有国家、地区、语言
存在很多的静态属性,来表示国家、语言
三种构造方法:
Locale(String language)
根据语言代码构造一个语言环境。
Locale(String language, String country)
根据语言和国家构造一个语言环境。
Locale(String language, String country, String variant)
根据语言、国家和变量构造一个语言环境。
常用方法:
Locale getDefault()
获得此 Java 虚拟机实例的当前默认语言环境值。
String getDisplayCountry()
返回适合向用户显示的语言环境国家名。
void setDefault(Locale newLocale)
为此 Java 虚拟机实例设置默认语言环境。
String getLanguage()
返回此语言环境的语言代码。
String getCountry()
返回此语言环境的国家/地区代码。
注意:
国家会兼容语言,但语言不会兼容国家。
java.text.*:该包下存在许多格式化类
NumberFormat抽象类:
常用方法:
NumberFormat getInstance()
返回当前默认语言环境的通用数字格式。
NumberFormat getInstance(Locale inLocale)
返回指定语言环境的通用数字格式。
String format(double number)
根据国家,进行格式规范。
NumberFormat getCurrencyInstance(Locale inLocale)
返回指定语言环境的货币格式。
SimpleDateFormat类:
模式字母:
y 年
M 年中的月份
H 一天中的小时数(0-23)
h am/pm 中的小时数(1-12)
m 小时中的分钟数
s 分钟中的秒数
构造器:
SimpleDateFormat(String pattern)
用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。
常用方法:
String format(Date date)
将一个 Date 格式化为日期/时间字符串。
注意:
看到相应的模式字母,就会进行转换。
实现国际化:
1、先写各个语言对应的文字类,使其extends ListResourceBundle,然后重写getContents(),返回一个二维数组。
2、在程序中按照Local和ListResourceBundle的baseName来选择对应的资源,调用getString()/getObject()取得value
ResourceBundle类:
ResourceBundle getBundle(String baseName, Locale locale)
baseName为对应的ListResourceBundle的类名(包名.类名)
使用指定的基本名称和语言环境,以及调用方的类加载器获取资源包。
注意:根据key去查找value时,当前没有会去查找默认的,默认的也没有则会抛出异常