尝试1:
在实体类字段上添加@DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date orderDate;控制台输出
添加的预约记录:{“id”:null,”title”:”测试1″,”hospitalId”:1001,”orderDate”:”Wed Apr 10 10:00:00 CST 2019″,”orderType”:2001,”petVariety”:”哈士奇”,”mobilePhone”:”1000″,”supplement”:”二哈”}
数据库记录

数据库记录
遇到的问题:从数据库获取数据后在前端显示不友好

显示
尝试2: 在实体类字段添加@DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)和@JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”, timezone = “GMT+8”)
/**
* timezone = "GMT+8"指定时区
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date orderDate;前端显示效果:这下就能显示成我们想要的效果了

前端显示
尝试3:我的后台项目使用SpringBoot搭建的,我在application.yml文件中添加如下配置
# 配置数据源
spring:
datasource:
name: pet-hospital
type: com.alibaba.druid.pool.DruidDataSource
url: jdbc:mysql://localhost:3306/pet_hospital?serverTimezone=GMT%2B8
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: 1741248769
# Vue前端传来的日期为String类型,下面的设置可以自动将其转换为Date类型,不需要手动转换
mvc:
date-format: yyyy-MM-dd HH:mm:ss
# 以下设置可以将Date类型自动转换为如下格式的日期,指定Jackson格式化日期使用的时区,Jackson默认使用UTC
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8显示效果

显示
总结:
日期从前端传到后端(添加),由String类型解析成Date类型,从后端传到前端(查询),由Date类型解析成String类型
可以使用注解的方式,@DateTimeFormat、@JsonFormat
可以使用配置文件方式,spring.mvc.date-format、spring.jackson.date-format/time-zone
为什么要设置time-zone?因为Jackson默认使用UTC时区,所以需要手动指定时区为GMT+8










