2011-01-06 7 views
11

私はイベントの期間を記述するフィールドを持っています。 イベントは、最後の15分になります。だから、フィールドには次の値があります:それは1時間続くことがある場合は午後12時15 を:01:00など文字列HH:MMをJoda Durationに変換する方法?

は、どのように私は、文字列「:MM HH」とJoda-TimeDurationオブジェクトを作成することができますか?

Joda-Timeのホームページを見ると、それぞれConverterManagerとDurationConverterを使用して、指定されたオブジェクトからDurationオブジェクトを作成できることに言及しています。

質問:「4:30」パラメータを渡してDurationオブジェクトを作成できるように、上記のインターフェイスを実装するにはどうすればよいですか。事前に

おかげで、

ルーカス

答えて

16

私はより良い方法は、このようPeriodFormatterBuilderを使用することだと思う:

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

次にあなたがPeriodオブジェクトにあなたの文字列を解析し、toStandardDuration()上を呼び出すことができますそれらは - またはPeriodと一緒に働いてください。これはあなたのユースケースによく似ているようです。

+0

あなたの答えをありがとう。どのように私はパラメータを渡すと呼ぶでしょう:HH:mm? –

+1

@ルーカス:そうではありません。 APIは、パターン文字列ではなく、ビルダー設計パターンに基づいています。私が描くコードは、HH:mmパターン文字列と同じです。 –

+2

フォーマッタを作成したら、formatter.parsePeriod( "00:15")を呼び出してピリオドオブジェクトを取得します。 - http://joda-time.sourceforge.net/api-release/org/joda/time/format/PeriodFormatter .html – JodaStephen

関連する問題