Java Joda时间解析时间超过24小时
是否有可能使用日期如“2016-07-13T25:50”的解析时间来获取值为“2016-07-14T01:50”的LocalDateTime?我只想使用Joda time和java.util。如果不编写自定义解析器,这似乎是不可能的,因为Joda和java 8 DateTime API(主要受Joda的启发)适用于ISO-8601日历系统,这不允许使用这种格式 关于工期的报价: 或者,基于组合的日期和时间表示的持续时间格式可以通过通信双方之间的协议以基本格式pyyyymddthhmmss或扩展格式p[YYYY]-[MM]-[DD]T[hh]:[MM]:[ss]使用。例如,上面显示的第一个持续时间是“P0003-06-04T12:30:05”。但是,单个日期和时间值不能超过其模数(例如,不允许月份值为13或小时值为25)Java Joda时间解析时间超过24小时,java,parsing,jodatime,Java,Parsing,Jodatime,是否有可能使用日期如“2016-07-13T25:50”的解析时间来获取值为“2016-07-14T01:50”的LocalDateTime?我只想使用Joda time和java.util。如果不编写自定义解析器,这似乎是不可能的,因为Joda和java 8 DateTime API(主要受Joda的启发)适用于ISO-8601日历系统,这不允许使用这种格式 关于工期的报价: 或者,基于组合的日期和时间表示的持续时间格式可以通过通信双方之间的协议以基本格式pyyyymddthhmmss或扩展格
可用的DateTimeFormatter列表可在中找到。您可以在Joda Time中使用宽松的年表:
LenientChronology lenientChrono = LenientChronology.getInstance(ISOChronology.getInstance());
DateTimeFormatter formatter =
DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm").withChronology(lenientChrono);
LocalDateTime ldt = formatter.parseLocalDateTime("2016-07-13T25:50");
System.out.println("lenient=" + ldt); // 2016-07-14T01:50:00.000
您不想使用内置于Java8中的JSR-310吗?只是想知道:我们的需求来自哪里?这仅仅是25个小时;或者你也愿意接受99分钟?或者343分钟?我不能使用java 1.8,因为项目是用1.7.Beucase编写的,我需要解析24小时,而joda time无法解析。在T字符上拆分日期/时间。使用SimpleDataFormat解析日期。使用您自己的自定义代码解析时间。将时间添加到日期,并使用另一个SimpleDataFormat生成输出日期/时间。