java - mongodb,保存后截断日期时间中的毫秒

标签 java mongodb spring-boot kotlin jackson

我有一些带有 LocalDateTime 类型的日期时间字段的对象

保存前:

date=date=2019-12-18T09:27:20.939826

保存并从存储库中获取:

date=2019-12-18T09:27:20.939

如您所见,日期被截断。

这会导致单元测试中的对象不相同并导致断言失败。

处理这个问题的最佳方法是什么?又如何?

编辑:

配置:

spring:
  data.mongodb:
    uri: mongodb://localhost:27017/app-db-test
  jackson:
    serialization:
      write_dates_as_timestamps: false

在 mongodb 中保存的日期时间:

ISODate("2019-12-18T09:27:20.939+0000")

最佳答案

解决方案:

设置日期字段时使用:

LocalDateTime.now(ZoneOffset.UTC).withNano(0)

在我的应用程序中,我引入了一个中心类“Clock”,我们可以从中获取当前时间:

Clock.time(ZoneOffset.UTC)

此类有助于提高可测试性,但也是调用 .withNano(0) 的地方。

关于java - mongodb,保存后截断日期时间中的毫秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59388683/

相关文章:

java - 创建简单的事件驱动架构

couchdb - 设计文档数据库架构

java - Spring Hateoas 忽略查询参数

java - Spring引导+ Jersey API+JPA : failed to lazily initialize a collection of role

java - DispatcherServletRegistration Spring启动异常

java - Storage.Builder(com.google.api.client.http....)

Java - InheritableThreadLocal 跨线程泄漏数据

java - 你如何修复intellij奇怪的字符串缩进?

Java:异步 MongoTemplate/MongoOperation

mongodb - 为什么不用B+-Tree MongoDB