有时候同一个网站会在不同的语言环境下运行,例如在中文环境下或者在英文环境下或者日文环境下等等,那么这时候我们变成就要使用国际化编程(internationlization)。

jdk给我们提供了几个基本类帮助我们进行国际化编程,Locale基本类和工具类NumberFormat(处理货币,数字,百分比等),DateFormat(处理时间);

Locale local = Locale.getDefault();
			
	System.out.println(local.getCountry());
	System.out.println(local.getDisplayCountry());
	System.out.println(local.getLanguage());
	System.out.println(local.getDisplayLanguage());
	System.out.println(local.getDisplayName());

  

//输出结果

CN
中国
zh
中文
中文 (中国)

  Locale类给我们封装了各个国家的一些基本数据,如使用的语言简写,国家的名称等等,要获得每个国家的具体对象,只需要调用Locale的静态对象即可

/*
* 想获取不同国家的100元货币表示法时就可以用NumberFormat传入本地对象然后获取
* 货币工具实例,再传入货币值就能打印当前locale类表示的国家的货币100元表示法了
*
*/
        Locale local = Locale.getDefault();
	double coin = 100;
	//获取货币实例
	NumberFormat curreny =     
                        NumberFormat.getCurrencyInstance(local);
        System.out.println(curreny.format(coin));
        //中国
Locale local = Locale.CHINA;
			
DateFormat instance = DateFormat.getDateTimeInstance(DateFormat.LONG,     
            DateFormat.FULL, local);	
 System.out.println(instance.format(new Date()));
//像上面这样就能打印出符合中国人习惯的日期时间格式,如何想改成其他国家的日期格式只需要将Local.CHINA换成Local.XXX就行了
//解析字符串为date形式
		
Locale local = Locale.CHINA;
			
String str = "2017年10月24日 上午11时50分14秒 CST";
			
DateFormat instance = DateFormat.getDateTimeInstance(DateFormat.LONG,     
                                                                                       DateFormat.FULL, 
                                                                                                       local);		
Date date = instance.parse(str);		
System.out.println(date);