今天项目中碰到过这个问题,在考虑设计数据库表字段的时候,针对更新时间这个字段,我想到了datetime和timestamp两种类型,还有一种是date,我这里是要展示yyyy-MM-dd HH:mm:ss格式,而date类型是yyyy-MM-dd类型,所以date舍弃。
好了,了解完区别我们来看下针对时间后面多了个.0的问题怎么处理。
一、直接在MySQL中处理
SELECT DATE_FORMAT(t.update_time, '%Y-%m-%d %k:%i:%s') AS updateTime FROM USER t
当然,我这里只是为了测试DATE_FORMAT这个函数,自己写了个USER表,项目中其他字段我没写上来;
这里注意一下:一定要写AS updateTime,不然你对这个时间字段格式化映射不到实体类的字段。
二、Java在后台处理
public static String formateDateTime(Date date) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return date == null ? "" : sdf.format(date);
}
三、Java实体类的字段属性上做处理
maven依赖的jar包:jackson-annotations-2.8.5.jar
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date dateTime;
这样从数据库查出来的数据通过mybatis映射到实体类直接实现格式化转化。