Java 8 LocalDateTime 在解析日期字符串值时丢弃 00 秒值,如“2018-07-06 00:00:00”功能,不是错误
下面的代码 (Java 8) 代码段会删除我的日期时间的秒部分,当秒值在使用 LocalDateTime.parse 解析的日期内为零时,如 2018-07-10 00:00:00:
final DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
final LocalDateTime localDateTime = LocalDateTime.parse("2018-07-06 00:00:00", dateTimeFormatter);
final String lexicalDate = localDateTime.toString();
System.out.println("Lexical Date : "+ lexicalDate);
final XMLGregorianCalendar gregorianCalendar = DatatypeFactory.newInstance().newXMLGregorianCalendar(lexicalDate);
System.out.println("Gregorian Calendar : "+ gregorianCalendar);
词法日期打印为:
词汇日期 : 2018-07-10T00:00
而不是:
词汇日期 : 2018-07-10T00:00:00
现在,这会影响公历的日期值,当第二个被丢弃时,该日期值将返回 null。当秒值大于零的其他情况时,它可以完美地工作。
javax.xml.datatype.DatatypeFactory.newInstance().newXMLGregorianCalendar(lexicalDate)
每当由于分析的字符串中的 00 秒值而丢弃秒值时,上述代码将返回 null。
有人可以使用LocalDate时间更好地处理此问题吗,否则它可能是Java 8 LocalDateTime中的错误/有趣的控件。
请注意,我无法控制此日期值,它来自第三方平台。