Java LocalDate - Время добавляется в дату при сохранении в MongoDB? - PullRequest
0 голосов
/ 05 февраля 2020

У меня есть следующее 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

}

Когда я делаю POST для моего Spring Boot REST веб-приложения с JSON Body:

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

Дата сохраняется в Пн go следующим образом:

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

Как мне сделать так, чтобы дата сохранялась просто:

20-01-2020

1 Ответ

1 голос
/ 05 февраля 2020

Это не проблема Java, MongoDB использует формат даты, аналогичный JavaScript формат даты. Если вы хотите сохранить только dd-MM-YYYY, вы можете изменить тип столбца на String. Если это невозможно, вам нужно переписать ваш сериализатор, чтобы он возвращал строковое представление даты (и, конечно, переписать десериализатор, чтобы проанализировать эту строку в LocalDate

...