一、Locale类

//Locale locale = Locale.CHINA;
Locale locale = new Locale("zh", "CN");
System.out.println(locale.getLanguage());
System.out.println(locale.getDisplayCountry());
System.out.println(locale.getDisplayLanguage());

二、DateFormat类

Date date = new Date();
System.out.println(date);
Locale locale = new Locale("zh", "cn");
DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.FULL, locale);
System.out.println(dateFormat.format(date));
String dates = "2017-3-17";
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(df.parse(dates));

三、NumberFormat类

double d = 1.12d;
Locale locale = Locale.CHINA;
//格式化为货币
NumberFormat numberFormat = NumberFormat.getCurrencyInstance(locale);
//格式化为数字
NumberFormat numberFormat2 = NumberFormat.getNumberInstance(locale);
//格式化为百分比
NumberFormat numberFormat3 = NumberFormat.getPercentInstance(locale);
System.out.println(numberFormat.format(d));
System.out.println(numberFormat2.format(d));
System.out.println(numberFormat3.format(d));

四、MessageFormat类

String str = "{0},{1}";
String strs = MessageFormat.format(str, "userName","admin");
System.out.println(strs);

五、ResourceBundle类

ResourceBundle bundle = ResourceBundle.getBundle("i18n",new Locale("en","US"));
System.out.println(bundle.getString("userName"));

六、国际化资源文件

i18n.properties userName=userName

i18n_zh_CN.properties userName=\u7528\u6237\u540D

i18n_en_US.properties userName=userName


注:i18n是基名,zh是语言代码,CN是国家代码


七、JSP页面的fmt标签

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> 
<%
Locale locale = Locale.US;
//Locale locale = Locale.CHINA;
request.setAttribute("locale", locale);
System.out.println(request.getLocale());
//打印出所有应用中配置的资源国际文件
Enumeration<Locale> enumeration = request.getLocales();
while(enumeration.hasMoreElements()){
Locale locale2 = enumeration.nextElement();
System.out.println(locale2);
}
%>
<fmt:setLocale value="${requestScope.locale}"/>
${requestScope.locale}
<fmt:setBundle basename="i18n"/>
<fmt:message key="userName"></fmt:message>
<fmt:formatNumber type="currency" value="123"></fmt:formatNumber>