java locale是什么,让我们一起了解一下?
locale命令是将有关当前语言环境或全部公共语言环境的信息写到标准输出上,如果使用了语言环境类别名而没有使用标志来指定locale命令,那么 locale命令会写出由Name参数指定的语言环境类别中的所有关键字的值。
Java为什么要设定locale?
虽然设定locale与你能否浏览中文的网页没有直接的关系,即便你把locale设置成en_US.ISO-8859-1这样一个标准的英文locale你照样可以浏览中文的网页,只要你的系统里面有相应的字符集(这个都不一定需要)和合适的字体(如simsun),浏览器就可以把网页翻译成中文给你看。具体的过程是网络把网页传送到你的机器上之后,浏览器会判断相应的编码的字符集,根据网页采用的字符集,去字体库里面找合适的字体,然后由文字渲染工具把相应的文字在屏幕上显示出来。
但是为了让你的Linux能够输入中文,就需要把系统的locale设定成中文的(严格说来是locale中的语言类别LC_CTYPE ),例如zh_CN.GB2312、zh_CN.GB18030或者zh_CN.UTF-8。很多人都不明白这些古里古怪的表达方式。但是只需要知道,这是locale的表达方式就可以了。
实战操作:
下面通过示例演示在Date中使用Locale的,参考代码如下(LocaleTest.java):
import java.util.Locale;
import java.util.Date;
import java.util.Calendar;
import java.text.SimpleDateFormat;
import java.text.DateFormat;
/**
* Locale 的测试程序
*/
public class LocaleTest {
public static void main(String[] args) {
// 2种不同的Locale的创建方法
testDiffDateLocales();
// 显示所有的Locales
testAllLocales();
}
/**
* 2种不同的Locale的创建方法
*/
private static void testDiffDateLocales() {
// date为2013-09-19 14:22:30
Date date = new Date(113, 8, 19, 14, 22, 30);
// 创建“简体中文”的Locale
Locale localeCN = Locale.SIMPLIFIED_CHINESE;
// 创建“英文/美国”的Locale
Locale localeUS = new Locale("en", "US");
// 获取“简体中文”对应的date字符串
String cn = DateFormat.getDateInstance(DateFormat.MEDIUM, localeCN).format(date);
// 获取“英文/美国”对应的date字符串
String us = DateFormat.getDateInstance(DateFormat.MEDIUM, localeUS).format(date);
System.out.printf("cn=%s\nus=%s\n", cn, us);
}
/**
* 显示所有的Locales
*/
private static void testAllLocales() {
Locale[] ls = Locale.getAvailableLocales();
System.out.print("All Locales: ");
for (Locale locale:ls) {
System.out.printf(locale+", ");
}
System.out.println();
}
}以上就是小编今天的分享了,希望可以帮助到大家。