前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >SpringBoot 项目 返回时间 日期、格式不正确 解决办法

SpringBoot 项目 返回时间 日期、格式不正确 解决办法

作者头像
RAIN7
发布2022-10-08 09:09:55
发布2022-10-08 09:09:55
2.3K00
代码可运行
举报
运行总次数:0
代码可运行

文章目录

SpringBoot 项目返回时间格式不正确 解决办法

  今天做一个 SpringBoot+Vue 的一个练习项目,想要搞一个创建该账号的时间,记录下来,然后展示在网页中,但是遇到了很多的问题,先介绍以下,我们之前怎么做的。

1、遇到问题

  为了实现记录并展示创建(注册)时间,在数据库中设置字段,设置timestamp类型,默认now() 时间

代码语言:javascript
代码运行次数:0
复制
create_time timestamp default now() comment '保存时间' # 默认时间

  在java中使用实体类接收,createTime 使用 Date 类型来接收日期类型的数据库字段

代码语言:javascript
代码运行次数:0
复制
@TableField("create_time")
private Date createTime ;

  然后创建时间之后,查询数据库的时间以及格式都非常正常,我们在连接数据库之前同样设置正确的时区,或者 serverTimezone 设置成 GMT%2b8

代码语言:javascript
代码运行次数:0
复制
spring.datasource.url=jdbc:mysql://localhost:3306/vvue?serverTimezone=Asia/Shanghai

下面是注册账号时电脑时间

查询数据库中,时间与我们创建的时间是一致的,格式也是正确的

然而在实际的展示前端页面中,返回的响应展示在页面中

  格式是java 的格式,但是时间少了8个小时。我就非常纳闷了,感觉都没有问题,于是找了很多资料找到了解决方法。

2、解决方法

引用了其他博主的资料经验 https://blog.csdn.net/lujiachun1/article/details/118155198

(1)问题所在

  我们返回的响应都是json格式返回的,spring转json的默认实现jackson中会根据时区去转换时间,而jackson的默认时区跟国内是相差8小时的,所以这里得重新设置当前项目地所在时区

(2)如何解决

  在 application.properties 配置文件中中设置转会 json 的默认时区 以及 转成时间的格式

代码语言:javascript
代码运行次数:0
复制
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=Asia/Shanghai

(3)效果

  更改好配置文件之后,重新启动项目,发现时间已经正确而且格式符合我们的要求。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • SpringBoot 项目返回时间格式不正确 解决办法
  • 1、遇到问题
  • 2、解决方法
    • (1)问题所在
    • (2)如何解决
    • (3)效果
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档