MongoDB 时区问题
MongoDB 时区问题
一书生 发表于2年前
MongoDB 时区问题
  • 发表于 2年前
  • 阅读 468
  • 收藏 1
  • 点赞 0
  • 评论 3

【腾讯云】如何购买服务器最划算?>>>   

摘要: 解决MongoDB时区不同步问题

如果我们用Java的new Date()方式创建时间,保存到MongoDB后,会发现MongoDB中的时间总是比当前时间少8个小时,这是因为MongoDB存储时区用的是UTC+0:00,中国的时区为UTC+8:00
解决办法为:在程序代码中添加时间转换,如果是Spring MVC返回JSON的应用,可以直接在实体类中Date类型的属性上添加如下注解:

@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")

注:@JsonFormat注解加到get方法上。

如果使用的不是Spring MVC + JSON,也可以自己实现一个时区的转换器,用来统一转换Date类型的属性,暂时还没找到如何在MongoDB数据库端设置时区的办法,后面慢慢研究。

标签: Java MongoDB 时区
共有 人打赏支持
粉丝 3
博文 13
码字总数 5030
评论 (3)
不朽灬达
博主 你测试用java取时间时确定少了八小时,我测试的时候自动会转换成当前时区的时间,只是用Mongodb客户端显示的少八个小时
一书生

引用来自“霍达”的评论

博主 你测试用java取时间时确定少了八小时,我测试的时候自动会转换成当前时区的时间,只是用Mongodb客户端显示的少八个小时

我用的是spring mongoTemplate取出来少了8小时。
不朽灬达

引用来自“一书生”的评论

引用来自“霍达”的评论

博主 你测试用java取时间时确定少了八小时,我测试的时候自动会转换成当前时区的时间,只是用Mongodb客户端显示的少八个小时

我用的是spring mongoTemplate取出来少了8小时。
恩 没用过这个 用的是mongodb driver取出来的
×
一书生
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: