Как сделать часы необязательными в средстве форматирования ISO_LOCAL_TIMEJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как сделать часы необязательными в средстве форматирования ISO_LOCAL_TIME

Сообщение Anonymous »

Я пытаюсь сделать часы одно- или двухзначными и необязательными, изменив форматировщик ISO_LOCAL_TIME. Это для продолжительности синтаксического анализа, где часы могут быть необязательными. Это то, что я попробовал.

Код: Выделить всё

new DateTimeFormatterBuilder()
.optionalStart()
.appendValue(HOUR_OF_DAY, 1, 2, SignStyle.NOT_NEGATIVE)
.appendLiteral(':')
.optionalEnd()
.appendValue(MINUTE_OF_HOUR, 2)
.appendLiteral(':')
.appendValue(SECOND_OF_MINUTE, 2)
.appendFraction(NANO_OF_SECOND, 0, 9, true)
.toFormatter()
.withResolverStyle(STRICT);

//the duration is created like this
return Duration.between(LocalTime.MIN, LocalTime.parse(formatted, formatter));
Это то, с чем я тестирую.

Код: Выделить всё

12:34:56.789
2:34:56.789
34:56.789
34:56 (mm:ss not hh:mm)
Но последние два теста терпят неудачу.
Как создать форматтер, который пройдет все 4 теста?

Подробнее здесь: https://stackoverflow.com/questions/786 ... -formatter
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»