Что сериализует JsonFormat.Shape.NUMBER_INT для LocalDate? - PullRequest
0 голосов
/ 22 января 2019

Рассмотрим пример:

public class MyDto {
    @JsonFormat(shape = JsonFormat.Shape.NUMBER_INT)
    private LocalDate dob;
}

Приводит к {"dob":17918}, когда new Date().getTime() возвращает 1548155501766

Это не похоже на секунды или миллисекунды. Так что же это за номер?

Примечание

Java-модуль времени для Джексона включен в маппер объектов.

Ответы [ 2 ]

0 голосов
/ 22 января 2019

Из следующего исходного кода: LocalDateSerializer.java

    if (_shape == JsonFormat.Shape.NUMBER_INT) {
        g.writeNumber(date.toEpochDay());
    } 

Вы можете видеть, что в случае JsonFormat.Shape.NUMBER_INT число, которое вы получаете, является результатом вызова toEpochDay () для вашего LocalDate объекта.

0 голосов
/ 22 января 2019

Метод date getTime () возвращает числовое значение, соответствующее времени для указанной даты в соответствии с универсальным временем.

Значение, возвращаемое методом getTime, представляет собой количество миллисекунд с 1 января 1970 года 00: 00: 00.

...