Bezdepbonusu7Программирование: статьи и ответы

Вопрос

OffsetDateTime с разными смещениями в OffsetDateTime с UTC (Zulu)

Автор вопроса: degathОтветов: 1

В моей базе данных сохранены значения с разными смещениями, например.

`2018-03-26T03:00:00+03:00`
`2018-03-26T03:00:00+02:00`

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

Как разобрать OffsetDateTime со смещением в +00 смещение (называемое UTC или ZULU) с правильной передачей даты (я имею в виду не только изменение 2 на 0, но и правильное вычисление даты и времени).

javajava-8timeutctimezone

Ответы

Ответ 1 · рейтинг 2 · Ole V.V.

Легко, когда знаешь как:

    String dateTimeFromDatabase = "2018-03-26T03:00:00+03:00";
    OffsetDateTime dateTime = OffsetDateTime.parse(dateTimeFromDatabase)
            .withOffsetSameInstant(ZoneOffset.UTC);
    System.out.println("With offset 0: " + dateTime);

Выход:

Со смещением 0: 2018-03-26T00:00Z

Я не понял, почему ты возражал против получения Instant. Он печатается как 2018-03-26T00:00:00Z. Единственная разница в том, что секунды включены, хотя их 00.

Ссылка: Документация OffsetDateTime.withOffsetSameInstant()

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы