首页 > 解决方案 > Java LocalDate - 在 MongoDB 中保存时,时间会附加到日期上吗?

问题描述

我有以下Java实体:

public class Round {

    private ObjectId _id;

    @NotEmpty
    @Getter
    @Setter
    @Accessors(fluent = true)
    @JsonProperty("userId")
    private String userId;

    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd-MM-yyyy")
    @JsonDeserialize(using = LocalDateDeserializer.class)
    @JsonSerialize(using = LocalDateSerializer.class)
    @Getter
    @Setter
    @Accessors(fluent = true)
    @JsonProperty("date")
    private LocalDate date;

    //other fields

}

当我使用BodyPOST对我的Spring BootREST Web 应用程序执行操作时:JSON

{
  "userId": "user3",
  "date": "20-01-2020"
}

日期在 Mongo 中保持如下:

2020-01-20T00:00:00.000+00:00

我怎样才能让日期保持简单:

20-01-2020

标签: javajsonmongodblocaldatedate

解决方案


这不是 Java 的问题,MongoDB 使用的日期格式类似于 JavaScript 日期格式。如果您只想保存 dd-MM-YYYY,您可能需要将列类型更改为字符串。如果不可能,那么您需要重写序列化程序以返回日期的字符串表示形式(当然还要重写反序列化程序以将该字符串解析为 LocalDate


推荐阅读