Понимание формата даты 2019-10-16 02: 37: 08.000 + 000 - PullRequest
0 голосов
/ 24 марта 2020

Я получаю несколько форматов даты при вводе данных, мое требование - сохранить эти даты после преобразования в UT C. некоторые примеры: 2019-07-17T15: 44: 49 + 06: 30: я могу преобразовать это в UT C, потому что +06: 30 - часовой пояс страны, где эта дата зарегистрирована.

У меня есть другой формат даты 2019-10-16 02: 37: 08.000 + 000 . В этом случае я не понимаю, что означает +000, может кто-то, пожалуйста, объясните больше об этом формате. Я не получил много информации, когда гуглил.

1 Ответ

2 голосов
/ 24 марта 2020

Я вижу две возможности, когда дело доходит до понимания +000.

  1. Это ошибка. Это должен был быть один из +00, +0000 и +00:00. Только первоначальный издатель этого формата может сказать.
  2. Это формат домашнего вращения. Это, вероятно, означает смещение 0 от UT C. Возможно, 0 часов 00 минут от UT C, поэтому один ди git часов и два ди git минут смещения. Но это предположение, опять же, только первоначальный издатель этого формата может сказать.

Java может обрабатывать вариант 2.:

    DateTimeFormatter formatter = new DateTimeFormatterBuilder()
            .append(DateTimeFormatter.ISO_LOCAL_DATE)
            .appendLiteral(' ')
            .append(DateTimeFormatter.ISO_LOCAL_TIME)
            .appendOffset("+HMM", "+000")
            .toFormatter();

    String dateTimeInOtherFormat = "2019-10-16 02:37:08.000+000";

    OffsetDateTime dateTime = OffsetDateTime.parse(dateTimeInOtherFormat, formatter);
    System.out.println(dateTime);

Вывод из этих строк:

2019-10-16T02: 37: 08Z

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...