2011-08-06 26 views
3

「通常の」時間または時計のいずれかの時間を解析できるDateTime Parserが必要です。 私は00:00:00または24:00:00を同時に持つことができます。 さらに深夜にはクロックホールが許可されます。手段24:00:01は許可されていません。これは00:00:01と表記する必要があります。 これは何とか達成可能ですか? 私のパーサは、現在clockhoursを尊重していない:誰かが私を助けることができればジョーダ時間、時間と時間を同時に解析する

//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(); 

はgreateのだろう。

敬具、 フロリアン

答えて

0

Joda-Timeは24:00の解析をサポートしていません。あなたがそれを解釈したい場合はDateTimeParserを実装し、DateTimeFormatterBuilderを使用してそれを混在させる必要があります。

2

クロック時間24 23:00に等しくなります。形式kk:mm:ss 24:00:01を使用できます。だからその意味で24:00:00は決して00:00:00と等しくない。

+1

ISO 8601(およびxs:時間)の時間については、次のように記述されています。hh形式の2桁の値は、0〜24の値を持つことができます。時間要素の値が24の場合、minutes要素と秒の要素は00と00でなければなりません.24は23と同じではありません。時間は21:00、22:00、24:00、00:00となります。私はJodaとISO8601の時間形式をマッピングしたい(ホンダは00 - 23、kkは01 - 24ですが、kk 24:01は許可されており、ISO8601は許可されていません) –

+0

24:00と同じです時刻は00:00としていますが、00:00より前の24:00です。 24:00は(ISO8601)正確に真夜中を表すために使用できます。 –

関連する問題