Есть ли способ решить эту проблему?
Исправления нет. Вопрос в том, есть ли проблема вообще.
2018-05-02T14:23:00Z
и 2018-05-02T14:23Z
обозначают один и тот же момент времени. Когда секунды равны 0, как здесь, они являются необязательными в формате. Формат называется ISO 8601. Таким образом, вы получили ожидаемое значение.
Строка, которую вы видите, создается OffsetDateTime.toString()
. Невозможно изменить работу этого метода (даже путем переопределения, поскольку OffsetDateTime
является конечным классом).
Есть исправление для просмотра другой строки. Используйте форматтер:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ssXXXXX");
System.out.println(orderTime.format(formatter));
Это печатает:
2018-05-02T14: 23: 00Z
Ссылка: Статья в Википедии о ISO 8601