springboot 8小时问题
本文章纯属自己经验总结,如有误导,请多包涵。
自从使用springboot 很少注意时间存储显示的问题 这次碰到了 弄了好久。。。终于有点眉目
1 当 项目部署在世界时的服务器上,配置文件中写入
spring.jackson.time-zone = GMT+8
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
当前端提交post请求,后端用@RequestBody接收请求,此时 日期型字符串转换成Date型数据时 会少8个小时 存储到后端数据库后 再通过查询显示到前端时 将Date类型数据转换成日期字符串后 时间多了8小时
2 当 项目部署在世界时的服务器上,配置文件中未写入GMT+8
#spring.jackson.time-zone = GMT+8
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
当前端提交post请求,后端用@RequestBody接收请求,此时 日期型字符串转换成Date型数据时 时间正常 存储到后端数据库后 再通过查询显示到前端时 将Date类型数据转换成日期字符串后 时间正常
3 当 项目部署在北京时的服务器上,配置文件中写入
spring.jackson.time-zone = GMT+8
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
当前端提交post请求,后端用@RequestBody接收请求,此时 日期型字符串转换成Date型数据时 时间正常 存储到后端数据库后 再通过查询显示到前端时 将Date类型数据转换成日期字符串后 时间正常
2 当 项目部署在北京时的服务器上,配置文件中未写入 GMT+8
#spring.jackson.time-zone = GMT+8
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
当前端提交post请求,后端用@RequestBody接收请求,此时 日期型字符串转换成Date型数据时 会少8个小时 存储到后端数据库后 再通过查询显示到前端时 将Date类型数据转换成日期字符串后 时间多了8小时
总结:
spring-boot中对于@RestController或者@[email protected]注解的接口方法的返回值默认是Json格式,
所以当对于date类型的数据,在返回浏览器端是会被spring-boot默认的Jackson框架转换,而Jackson框架默认的时区GMT(相对于中国是少了8小时)。
若项目部署再世界时的服务器上 配置文件中不用加GMT+8
若项目部署再北京时的服务器上 配置文件中用加GMT+8
上一篇: Redis 命令(七) 之 Redis HyperLogLog
下一篇: 中心极限定理
推荐阅读
-
SpringBoot与Quartz集成实现分布式定时任务集群的代码实例
-
详解SpringBoot和Mybatis配置多数据源
-
IOS json 解析遇到错误问题解决办法
-
解决mysql安装时出现error Nr.1045问题的方法
-
SpringBoot+Swagger-ui自动生成API文档
-
在iOS10系统中微信后退无法发起ajax请求的问题解决办法
-
解决dubbo错误ip及ip乱入问题的方法
-
springboot集成rabbitMQ之对象传输的方法
-
Android调试出现The selected device is incompatible问题解决
-
Android 解决TextView排版参差不齐的问题