Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Joda时间,同时解析小时数和时钟小时数_Java_Datetime_Jodatime - Fatal编程技术网

Java Joda时间,同时解析小时数和时钟小时数

Java Joda时间,同时解析小时数和时钟小时数,java,datetime,jodatime,Java,Datetime,Jodatime,我想要一个DateTime解析器,它可以解析以“正常”小时或时钟小时为单位的时间。 意味着我可以同时拥有00:00:00或24:00:00。 只有午夜才允许延长时钟小时。表示不允许使用24:00:01。这必须表示为00:00:01。 这是可以实现的吗? 我的解析器当前不遵守时钟小时数: //The formatter for the timezone DateTimeFormatter timezoneFormatter = new DateTimeFormatterBuilder().appe

我想要一个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();
如果有人能帮助我,那就太好了

致以最良好的祝愿,
弗洛里安的24小时等于23:00。允许使用kk:mm:ss
24:00:01
格式。因此从这个意义上讲,
24:00:00
永远不等于
00:00:00

Joda Time不支持24:00的解析。如果您想解析它,您需要自己实现
DateTimeParser
,并使用
DateTimeFormatterBuilder

对它进行集成。关于ISO 8601(和xs:time),小时数描述为:hh格式的两个数字可以有0到24的值。如果小时元素的值为24,则分钟元素和秒元素的值必须分别为00和00。24不能等于23。那么时间是21:00,22:00,24:00,00:00。我想将ISO8601小时格式映射到Joda(在Joda中,hh是00-23,kk是01-24,但kk 24:01是允许的,ISO8601不是),我理解这是因为24:00与00:00是同一时间点,但00:00前一天是24:00。24:00(ISO8601)只能用于准确描述午夜。