在实际应用中,很多时候会用到String和Date类型之间的转换,比如:
在javaEE项目中,会接受到日期格式的String,我们如果要将其转换为Date格式,就会用到SimpleDateFormat类。
1.将String转换为Date类
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class StringToDate {
public static void main(String[] args) {
//获得一个时间格式的字符串
String dateStr = "2016-12-31";
//获得SimpleDateFormat类,我们转换为yyyy-MM-dd的时间格式
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
try {
//使用SimpleDateFormat的parse()方法生成Date
Date date = sf.parse(dateStr);
//打印Date
System.out.println(date);
} catch (ParseException e) {
e.printStackTrace();
}
}
}
2.将Date转换为String类型
Object类中为我们提供了toString方法,然而该方法对Date类进行转换时,往往达不到我们想要的效果,我们试一下这样的代码。
import java.util.Date;
public class DateToString1 {
public static void main(String[] args) {
// 获得当前时间
Date date = new Date();
//打印toString()
System.out.println("当前时间:"+date.toString());
}
}
这时候打印出来的String为:
当前时间:Sat Dec 31 13:59:22 CST 2016
what?!!
当然,这是一种格式的时间,但是对于客户而言,这样的时间显然是不行的,那么我们就需要将其转换为我们常用到的格式:yyyy-MM-dd
废话不多说,看代码:
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateToString1 {
public static void main(String[] args) {
// 获得当前时间
Date date = new Date();
// 获得SimpleDateFormat类
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
//打印当前时间
System.out.println("当前时间:"+sf.format(date));
}
}
这时候的打印结果为:
当前时间:2016-12-31
打印结果已经受到我们控制了,我们还可以打印出:"2016年12月31日这样的结果。
只要把"yyyy-MM-dd"修改为"yyyy年MM月dd日"即可。