Api возвращает дату и время в виде чисел, как я могу сделать правильную дату? - PullRequest
1 голос
/ 23 марта 2020

Я использую внешний API (использует MongoDB), который отправляет мне формат даты, подобный этому:

"documentDate": 1574283600000,

Я думаю, что он содержит дату как:

"documentDate" : ISODate("2019-02-28T00:00:00.000+03:00"),

Но он возвращает мне цифры. Как я могу сделать правильную дату как это:

03/12/2019

1 Ответ

0 голосов
/ 23 марта 2020

Я бы использовал java.time, так как значение выглядит (и, скорее всего, так) моментом времени, подсчитанным как эпоха миллисекунд . Вы можете преобразовать его в Instant, а затем преобразовать его в объект даты и времени, осведомленный о смещении или часовом поясе.

Посмотрите на это:

public static void main(String[] args) {
    // your sample millis
    long documentDateInMillis = 1574283600000L;
    // parse it to a moment in time: an Instant
    Instant instant = Instant.ofEpochMilli(documentDateInMillis);
    // then create an offset aware datetime object by adding an actual offset
    OffsetDateTime odt = OffsetDateTime.ofInstant(instant, ZoneOffset.of("+03:00"));
    // print it in the default representation
    System.out.println("Default formatting:\t" + odt);
    // or in an ISO representation of the date only
    System.out.println("ISO local date:\t\t"
                        + odt.format(DateTimeFormatter.ISO_LOCAL_DATE));
    // or in a custom representation (date only, too)
    System.out.println("Custom formatting:\t"
                        + odt.format(DateTimeFormatter.ofPattern("dd/MM/yyyy")));
}

Выходные данные является следующим:

Default formatting: 2019-11-21T00:00+03:00
ISO local date:     2019-11-21
Custom formatting:  21/11/2019
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...