SQL格式化时间后,返回的json数据依然是时间戳的解决办法

通常我们需要字符串格式时间的时候,我们可以对SQL中的时间进行格式化,例如

DATE_FORMAT(reply_time, '%Y-%m-%d %H:%i:%s') AS reply_time


然后将实体类中的时间成员变量改为String类型



但是这样做有一个缺点,就是在插入数据的时候,需要对时间进行格式化,例如

Date currentTime = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String now = formatter.format(currentTime);

articleInfo.setUpdateTime(now);


所以,我们可以将实体类中的时间成员变量依然定义为Date类型



然后在JSP页面获取的时候,用标签进行格式化,例如

<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>

<fmt:formatDate value="${entity.updateTime}" pattern="yyyy-MM-dd HH:mm:ss"/>


但是,我用需要返回json数据的时候,就又头疼了,返回的时间戳难道还要用js进行格式化?

关于这一点,我们可以借助于jackson的注解实现

我们在get方法上添加如下注解即可

@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")