2011-01-06 9 views
11

Tengo un campo en una forma para indicar la duración de un evento. Digamos que el evento durará 15 minutos. Por lo que el campo tiene el siguiente valor: doce y quince Si ha de durar 1 hora: 01:00, etc.Cómo convertir la cadena HH: MM a Joda Duration?

¿Cómo puedo crear un objeto Joda-TimeDuration con la cadena "HH: MM"?

Al mirar la página de inicio de Joda-Time, se menciona que es posible crear un objeto Duration a partir del objeto especificado mediante ConverterManager y DurationConverter, respectivamente.

Mi pregunta es, ¿cómo puedo implementar las interfaces anteriores para que pueda crear un objeto Duration pasando el parámetro "4:30"?

Gracias de antemano,

Lucas

Respuesta

16

creo que una mejor manera sería utilizar PeriodFormatterBuilder así:

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

A continuación, puede analizar sus cadenas en Period objetos y llamar a toStandardDuration() en esos - o seguir trabajando con el Period, ya que parece que combina mejor con su caso de uso.

+0

Gracias por la respuesta. cómo llamaría eso pasando los parámetros: HH: mm? –

+1

@Lucas: no lo harías. La API se basa en el patrón de diseño del constructor, no en una cadena de patrones. El código que represento es el equivalente de una cadena de patrón HH: mm. –

+2

Una vez que tenga un formateador, llame a formatter.parsePeriod ("00:15") para obtener el objeto de período - http://joda-time.sourceforge.net/api-release/org/joda/time/format/PeriodFormatter .html – JodaStephen

Cuestiones relacionadas