包含java中aLocale的词条
本篇文章给大家谈谈java中aLocale,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
java中的locale类是干什么的?
Locale 对象表示了特定的地理、政治和文化地区。需要 Locale
来执行其任务的操作称为语言环境敏感的 操作,它使用 Locale
为用户量身定制信息。例如,显示一个数值就是语言环境敏感的操作,应该根据用户的国家、地区或文化的风俗/传统来格式化该数值。
其实应该就是取当前操作系统一些信息,进行本地化处理啊、不能把你的日期时间显示成美国的,你肯定看不懂啊、
java中如何对时间做国际化处理啊
import java.util.*;
import java.text.*;
public class timeText {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Date now = new Date();
Calendar cal = Calendar.getInstance();
DateFormat d1 = DateFormat.getDateInstance(); //默认语言(汉语)下的默认风格(MEDIUM风格,比如:2008-6-16 20:54:53)
String str1 = d1.format(now);
DateFormat d2 = DateFormat.getDateTimeInstance();//获取系统时间格式
String str2 = d2.format(now); //将时间格式转换成字符串
DateFormat d3 = DateFormat.getTimeInstance();
String str3 = d3.format(now);
DateFormat d4 = DateFormat.getInstance(); //使用SHORT风格显示日期和时间
String str4 = d4.format(now);
DateFormat d5 = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL); //显示日期,周,时间(精确到秒)
String str5 = d5.format(now);
DateFormat d6 = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG); //显示日期。时间(精确到秒)
String str6 = d6.format(now);
DateFormat d7 = DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT); //显示日期,时间(精确到分)
String str7 = d7.format(now);
DateFormat d8 = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM); //显示日期,时间(精确到分)
String str8 = d8.format(now);//与SHORT风格相比,这种方式最好用
System.out.println("用Date方式显示时间: " + now);//此方法显示的结果和Calendar.getInstance().getTime()一样
System.out.println("用DateFormat.getDateInstance()格式化时间后为:" + str1);
System.out.println("用DateFormat.getDateTimeInstance()格式化时间后为:" + str2);
System.out.println("用DateFormat.getTimeInstance()格式化时间后为:" + str3);
System.out.println("用DateFormat.getInstance()格式化时间后为:" + str4);
System.out.println("用DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL)格式化时间后为:" + str5);
System.out.println("用DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG)格式化时间后为:" + str6);
System.out.println("用DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT)格式化时间后为:" + str7);
System.out.println("用DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM)格式化时间后为:" + str8);
}
}
运行结果:
用Date方式显示时间: Mon Jun 16 20:54:53 CST 2008
用DateFormat.getDateInstance()格式化时间后为:2008-6-16
用DateFormat.getDateTimeInstance()格式化时间后为:2008-6-16 20:54:53
用DateFormat.getTimeInstance()格式化时间后为:20:54:53
用DateFormat.getInstance()格式化时间后为:08-6-16 下午8:54
用DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL)格式化时间后为
:2008年6月16日 星期一 下午08时54分53秒 CST
用DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG)格式化时间后为
:2008年6月16日 下午08时54分53秒
用DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT)格式化时间后
为:08-6-16 下午8:54
用DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM)格式化时间
后为:2008-6-16 20:54:53
或者直接获取毫秒,但是感觉与你问题无关
java中 locale类 及相关方法
在项目中经常要用到将字符串解析成Locale,但是没有一个比较好用的类。
java本身提供了3个构造函数
Locale(langugae)
locale(language,country)
Locale(String language, String country, String variant)
Apache 有个 LocaleUtils.toLocale(String language)但是不支持最后2个字符为小写的,如:zh_CN支持, zh_cn就不支持。
[java] view plaincopyprint?
import java.util.Locale;
public class LocaleUtil
{
private final static Locale DEFAULT_LOCALE = Locale.ENGLISH;
public final static String IETF_SEPARATOR = "-";
public final static String SEPARATOR = "_";
public final static String EMPTY_STRING = "";
public static Locale toLocale( String language )
{
if( !StringUtil.isNullOrEmpty( language ) )
{
return langToLocale( language, SEPARATOR );
}
return DEFAULT_LOCALE;
}
public static Locale langToLocale( String lang , String separator )
{
if( StringUtil.isNullOrEmpty( lang ) )
{
return DEFAULT_LOCALE;
}
String language = EMPTY_STRING;
String country = EMPTY_STRING;
String variant = EMPTY_STRING;
int i1 = lang.indexOf( separator );
if ( i1 0 )
{
language = lang;
} else
{
language = lang.substring(0, i1);
++i1;
int i2 = lang.indexOf( separator, i1);
if (i2 0)
{
country = lang.substring(i1);
} else
{
country = lang.substring(i1, i2);
variant = lang.substring(i2+1);
}
}
if(language.length() == 2)
{
language = language.toLowerCase();
}else
{
language = EMPTY_STRING;
}
if(country.length() == 2)
{
country = country.toUpperCase();
}else
{
country = EMPTY_STRING;
}
if( (variant.length() 0)
((language.length() == 2) ||(country.length() == 2)) )
{
variant = variant.toUpperCase();
}else
{
variant = EMPTY_STRING;
}
return new Locale(language, country, variant );
}
}
import java.util.Locale;
public class LocaleUtil
{
private final static Locale DEFAULT_LOCALE = Locale.ENGLISH;
public final static String IETF_SEPARATOR = "-";
public final static String SEPARATOR = "_";
public final static String EMPTY_STRING = "";
public static Locale toLocale( String language )
{
if( !StringUtil.isNullOrEmpty( language ) )
{
return langToLocale( language, SEPARATOR );
}
return DEFAULT_LOCALE;
}
public static Locale langToLocale( String lang , String separator )
{
if( StringUtil.isNullOrEmpty( lang ) )
{
return DEFAULT_LOCALE;
}
String language = EMPTY_STRING;
String country = EMPTY_STRING;
String variant = EMPTY_STRING;
int i1 = lang.indexOf( separator );
if ( i1 0 )
{
language = lang;
} else
{
language = lang.substring(0, i1);
++i1;
int i2 = lang.indexOf( separator, i1);
if (i2 0)
{
country = lang.substring(i1);
} else
{
country = lang.substring(i1, i2);
variant = lang.substring(i2+1);
}
}
if(language.length() == 2)
{
language = language.toLowerCase();
}else
{
language = EMPTY_STRING;
}
if(country.length() == 2)
{
country = country.toUpperCase();
}else
{
country = EMPTY_STRING;
}
if( (variant.length() 0)
((language.length() == 2) ||(country.length() == 2)) )
{
variant = variant.toUpperCase();
}else
{
variant = EMPTY_STRING;
}
return new Locale(language, country, variant );
}
}
注意:
public class StringUtil
{
public static boolean isNullOrEmpty(String target) {
return target == null || "".equals(target);
}
}
关于java中aLocale和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。