一、字符串转换为日期格式
前面已经学过通过 自定义类型转换器 实现绑定参数的额类型转换
这里实现的也是将输入的字符串变量转换为日期的格式存储到数据库中:
这里的出发时间为日期格式,但是传过去的是字符串格式,需要对其转换下,可以在实体变量那里对其进行格式化,不过这种方式只适用该实体类,具有局部性,没有自定义类型转换器范围广。
还有一种方法可以借助下面的 DateUtils 类
二、日期转换为字符串
这主要应用在,将数据库中的日期读取到网页上显示使用。
第一种方法可以在定义实体类时通过 DateUtils 对其进行转换设置:
public class DateUtils {
/**
* 日期转换成字符串
*/
public static String date2String(Date date, String patt) {
SimpleDateFormat sdf = new SimpleDateFormat(patt);
String format = sdf.format(date);
return format;
}
/**
* 字符串转换成日期
*/
public static Date string2Date(String str, String patt) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat(patt);
Date parse = sdf.parse(str);
return parse;
}
}
这样通过定义实体类时,对 departureTime 的get,set 方法进行处理获得不同的结果。
比如这里我想得到字符串形式的 departureTime,那就多定义一个departureTimeStr,表示字符串形式的日期
public String getDepartureTimeStr() {
if(departureTime!=null){
departureTimeStr= DateUtils.date2String(departureTime,"yyyy-MM-dd HH:mm:ss");
}
return departureTimeStr;
}
这样在页面中直接使用 departureTimeStr,表示日期的字符串。
同理也可以对 departureTime 的set 方法进行设置,通过 DateUtils 的 string2Date,完成日期和字符串的转换。
第二种方法,可以不处理实体类,而在页面端进行日期格式的处理:
<tr>
<td>生成日期</td>
<td> <fmt:formatDate value="${item.createtime}" pattern="yyyy-MM-dd HH:mm:ss"/> </td>
</tr>