用于将Date转为String(理解为时间的格式化输出) 或者将String转为Date(理解为时间的格式化解析)
不管是格式化输出还是格式化解析,都需要提供可以识别的格式。一般来说yyyy-MM-dd hh:mm:ss就可以满足大部分的需求了。
不过为了方便,API提供了getDateInstance() getDateTimeInstance()和getTimeInstance三个常用的已经格式化好的接口。分别对应三种格式为:
另外若是不知道格式,可以使用getBestDateTimePattern得到推荐的格式。
一个SimpleDateFormat实例必须有TimeZone信息,Date实例只是一个UTC时间。
需要为SimpleDateFormat提供TimeZone,才能正确解析Date或者格式化输出。若没有提供则使用系统当前的TimeZone设置。
example:
// TODO Auto-generated method stub
String str = "2009-02-15 09:21:35.345";
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS");
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日 hh时mm分ss秒SSS毫秒");
Date date = sdf1.parse(str);//提取格式中的日期
System.out.println("转换之前的日期:"+date);
String newStr = sdf2.format(date); //改变格式
System.out.println("转换之后的日期:"+newStr);