@JonSkeet Point отметил.

от вопрос уже есть ответ здесь:

Невозможно проанализировать строку в формате ISO 8601, без двоеточия в смещении, в Java 8 Date 1 ответ

Мы пытаемся проанализировать следующую строку даты и времени ISO 8601 со смещением часового пояса:

final String input = "2022-03-17T23:00:00.000+0000";

OffsetDateTime.parse(input);
LocalDateTime.parse(input, DateTimeFormatter.ISO_OFFSET_DATE_TIME);

Оба подхода терпят неудачу (что имеет смысл какOffsetDateTime также использоватьDateTimeFormatter.ISO_OFFSET_DATE_TIME) из-за двоеточия в смещении часового пояса.

java.time.format.DateTimeParseException: текст '2022-03-17T23: 00: 00.000 + 0000' не может быть проанализирован в индексе 23

Но согласноВикипедия Есть 4 допустимых формата для смещения часового пояса:

<time>Z 
<time>±hh:mm 
<time>±hhmm 
<time>±hh

Другие фреймворки / языки могут анализировать эту строку без каких-либо проблем, например, JavascriptDate() или ДжексоныISO8601Utils (они обсуждают эту проблемуВот)

Теперь мы могли бы написать свой собственныйDateTimeFormatter со сложным RegEx, но на мой взгляд,java.time библиотека должна иметь возможность анализировать эту действительную строку ISO 8601 по умолчанию, поскольку она является допустимой.

На данный момент мы используем JacksonsISO8601DateFormat, но мы бы предпочли использовать официальныйdate.time библиотека для работы. Каков будет ваш подход к решению этой проблемы?

Ответы на вопрос(4)

Ваш ответ на вопрос