在应用中经常会遇到日期格式化的问题,大致说起来主要有两个方面的解决方案,一个是在服务器端格式化,就是在编写JAVA程序时,一个是在输出时格式化,如用JSTL标签进行格式化输出等。前一种通常会影响数据库的检索结果,后一种只是单纯的为了输出好看。这取决于你的需求。下面举个例子说明用simpleDateFormat来格式化日期。
/**
* 返回一个日期的00点时间,如:2008-01-15 13:24:32返回2008-01-15 00:00:00
* @param date
* @return
*/
public static Date getDateBegin(Date date) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateBeginStr = simpleDateFormat.format(date);
Date dateBegin = null;
try {
dateBegin = dateFormat.parse(dateBeginStr + " 00:00:00");
} catch (ParseException e) {
e.printStackTrace();
}
return dateBegin;
}
在这个小例子中,用到了SimpleDateFormat的两个最常用的方法,format()方法用于将一个日期按照设定的格式转换成一个字符串,parse()方法用于将一个日期格式的字符串格式化成一个Date,需要注意的是,parse()方法里面的字符串的格式一定要准确,否则会无法转换。
/**
* 返回一个日期的00点时间,如:2008-01-15 13:24:32返回2008-01-15 00:00:00
* @param date
* @return
*/
public static Date getDateBegin(Date date) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateBeginStr = simpleDateFormat.format(date);
Date dateBegin = null;
try {
dateBegin = dateFormat.parse(dateBeginStr + " 00:00:00");
} catch (ParseException e) {
e.printStackTrace();
}
return dateBegin;
}
在这个小例子中,用到了SimpleDateFormat的两个最常用的方法,format()方法用于将一个日期按照设定的格式转换成一个字符串,parse()方法用于将一个日期格式的字符串格式化成一个Date,需要注意的是,parse()方法里面的字符串的格式一定要准确,否则会无法转换。