SSM时间格式问题
存入数据库的时间格式是datetime
但前端获取的是这样的
额,一串数字
我们存储在mysql中的数据是datetime类型的,当我们读取出来封装在实体类中的时候,就会变成英文时间格式,而不是yyyy-MM-dd HH:mm:ss这样的中文时间
解决方法:
一、 创建工具类接口
工具类
public interface Tool {
static String date(Date date){
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date);
}
}
实体类
- get,set,无参构造,有参构造,tostring省略
- 在时间的getset方法的基础上再改进一下,再加一个格式化的方法。
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date uploadingtime;
public String getUploadingtime() {
return util.Tool.date(uploadingtime);
}
public void setUploadingtime(Date uploadingtime) {
this.uploadingtime = uploadingtime;
}
这样就简单解决啦
二、 使用@JsonFormat时间格式化注解
JsonFormat注解是jackson包里面的一个注解,因此在使用的时候需要引入fasterxml maven的jar包,如下所示。
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.2</version>
</dependency>
引入fasterxml maven jar包之后,就可以在实体类属性上面使用@JsonFormat注解了,要注意的是,它只会在类似@ResponseBody返回json数据的时候,才会返回格式化的yyyy-MM-dd HH:mm:ss时间,你直接使用System.out.println()输出的话,仍然是类似“Fri Dec 01 21:05:20 CST 2017”这样的时间样式。
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
private Date uploadingtime;