java.text.SimpleDateFormat类我们一般用来它实现字符串于java.util.Date之间的互转,比如将Date实例转换为指定的字符串表示形式,
或者将一个字符串的日期表示转为具体的Date实例。
创建SimpleDateFormat实例
可以像下面一样创建一个SimpleDateFormat实例:
String pattern = "yyyy-MM-dd";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
其中pattern参数用来指定字符串和日期互转时的格式。
日期转换成字符串
使用format()方法可以将一个日期类型的值转换为字符串表示形式,比如:
String pattern = "yyyy-MM-dd";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
String date = simpleDateFormat.format(new Date());
System.out.println(date); // 2013-12-04
注意,format()方法的参数必须是java.util.Date类型的实例。
字符串转换为日期
使用parse()方法可以可以将一个日期形式的字符串转换为一个java.util.Date类型:
String pattern = "yyyy-MM-dd";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
Date date = simpleDateFormat.parse("2013-12-04");
根据具体的语言环境创建SimpleDateFormat实例
具体的语言环境可以通过Locale类表示,在这先不做介绍了。想通过具体语言环境来创建SimpleDateFormat实例可以像下面那样:
String pattern = "EEEEE MMMMM yyyy HH:mm:ss.SSSZ";
SimpleDateFormat simpleDateFormat =
new SimpleDateFormat(pattern, new Locale("zh", "ZH")); //指定具体语言环境
String date = simpleDateFormat.format(new Date());
System.out.println(date);
输出如下:
星期三 十二月 2013 17:09:04.757+0800
我们发现星期和月份的表示都是中文的,如果new Locale("zh", "ZH")换成new Locale("en", "EN"),那输出就会变为:Wednesday December 2013 17:09:04.757+0800
常用日期格式
dd-MM-yy 31-01-12
dd-MM-yyyy 31-01-2013
MM-dd-yyyy 01-31-2013
yyyy-MM-dd 2013-01-31
yyyy-MM-dd HH:mm:ss 2013-01-31 23:59:59
yyyy-MM-dd HH:mm:ss.SSS 2013-01-31 23:59:59.999
yyyy-MM-dd HH:mm:ss.SSSZ 2013-01-31 23:59:59.999+0100
EEEEE MMMMM yyyy HH:mm:ss.SSSZ Saturday November 2013 10:45:42.720+0100