最近项目中遇到的问题,前端传送到后端的时间少了8个小时,网上查了不少博客,记录一下解决方法。
因为服务器所在时区是零时区,所以后端接收的时间会减少8小时,存到数据库的时间也会少了8小时。有几种方式可以解决:
配置是在application.properties加上
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8
这种方式是全局配置,如果要单独配置到某个返回的VO,则在其日期字段上加
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
在启动类加
@PostConstruct
void setDefaultTimezone() {
TimeZone.setDefault(TimeZone.getTimeZone("Asia/Shanghai"));
}
或者启动run方法里加上
public static void main(String[] args) {
TimeZone.setDefault(TimeZone.getTimeZone("Asia/Shanghai"));
SpringApplication.run(BaseMicroServiceApplication.class, args);
}