Joda Time, разбор часов и часов одновременно - PullRequest
3 голосов
/ 06 августа 2011

Я хочу иметь анализатор DateTime, который может анализировать время в «нормальных» часах или в часах.Означает, что я могу иметь 00:00:00 или 24:00:00 одновременно.Дальнейшие часы разрешены только в полночь.Значит 24:00:01 не допускается.Это должно быть выражено как 00:00:01.Это как-то достижимо?Мой парсер в настоящее время не учитывает часы:

//The formatter for the timezone
DateTimeFormatter timezoneFormatter = new DateTimeFormatterBuilder().appendTimeZoneOffset(null, true, 2, 2)
            .toFormatter();
//The formatter for the fractional (3 digit) seconds
DateTimeFormatter fractionalSecondsFormatter = new DateTimeFormatterBuilder().appendLiteral('.')
            .appendFractionOfSecond(3, 3).toFormatter();

// Here a parser is created that parses a string of the form HH:mm:ss. Further the string may have
// 3 digit fractional seconds (with a dot as prefix) and may have a timezone.
DATE_TIME_PARSER = new DateTimeFormatterBuilder().appendHourOfDay(2).appendMinuteOfHour(2).appendSecondOfMinute(2)
            .appendOptional(fractionalSecondsFormatter.getParser()).appendOptional(timezoneFormatter.getParser())
            .toFormatter();

Было бы здорово, если бы кто-то мог мне помочь.

С уважением, Флориан

Ответы [ 2 ]

2 голосов
/ 07 августа 2011

Часы 24 часа равняются 23:00. Использование формата kk: mm: ss 24:00:01 будет разрешено. Так что в этом смысле 24:00:00 никогда не равно 00:00:00.

0 голосов
/ 08 августа 2011

Joda-Time не поддерживает разбор 24:00.Если вы хотите разобрать, что вам нужно внедрить DateTimeParser самостоятельно и интегрировать его, используя DateTimeFormatterBuilder.

...