Как преобразовать строку HH: MM в продолжительность Joda?

У меня есть поле в форме для указания продолжительности события. Скажем, событие должно длиться 15 минут. Таким образом, поле будет иметь следующее значение: 00:15 Если продлится 1 час: 01:00 и т. д.

Как создать Joda-Time Duration со строкой "ЧЧ:ММ"?

Глядя на домашнюю страницу Joda-Time, упоминается, что можно создать объект Duration из указанного объекта, используя ConverterManager и DurationConverter соответственно.

Мой вопрос: как я могу реализовать вышеуказанные интерфейсы, чтобы я мог создать объект Duration, передав параметр «4:30»?

Заранее спасибо,

Лукас


person Lucas T    schedule 06.01.2011    source источник


Ответы (1)


Я думаю, что лучше использовать PeriodFormatterBuilder вот так:

 PeriodFormatter hoursMinutes= new PeriodFormatterBuilder()
     .appendHours()
     .appendSeparator(":")
     .appendMinutes()
     .toFormatter();

Затем вы можете разобрать свои строки на объекты Period и вызвать для них toStandardDuration() или продолжить работу с Period, так как это лучше соответствует вашему варианту использования.

person Michael Borgwardt    schedule 06.01.2011
comment
Спасибо за Ваш ответ. как бы я назвал передачу параметров: ЧЧ: мм? - person Lucas T; 07.01.2011
comment
@ Лукас: ты бы не стал. API основан на шаблоне проектирования компоновщика, а не на строке шаблона. Код, который я представляю, эквивалентен строке шаблона ЧЧ: мм. - person Michael Borgwardt; 07.01.2011
comment
Когда у вас есть средство форматирования, вы вызываете formatter.parsePeriod(00:15), чтобы получить объект периода — joda-time.sourceforge.net/api-release/org/joda/time/format/ - person JodaStephen; 15.01.2011
comment
Есть ли причина отсутствия возможности использовать DateTimeFormat для периода во времени joda? Кто-то может решить, что шаблон построителя слишком многословен для конкретных целей, и может захотеть использовать простой и понятный DateTimeFormat для форматирования данного периода (или его эквивалента). - person Fagner Brack; 10.08.2014