小编Tau*_*ura的帖子

Java 8 LocalDateTime在使用00秒解析日期字符串值时丢弃00秒值,如"2018-07-06 00:00:00"

代码(爪哇8)下面片断滴秒部分的我的日期时间时的秒值是的时间内使用解析的LocalDateTime.parse,如2018年7月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);
Run Code Online (Sandbox Code Playgroud)

词汇日期打印为:

词典日期:2018-07-10T00:00

不论是:

词典日期:2018-07-10T00:00:00

现在这会影响格里高利历的日期值,当第二个被删除时,它会返回null.其他情况当秒值大于零时,它完美地工作.

javax.xml.datatype.DatatypeFactory.newInstance().newXMLGregorianCalendar(lexicalDate)
Run Code Online (Sandbox Code Playgroud)

每当秒值被删除时,上面的代码返回null,因为带有解析字符串的00秒值.

有人可以使用LocalDate时间帮助处理此问题的更好方法,否则它可能是Java 8 LocalDateTime中的错误/有趣控件.

请注意,我无法控制此日期值,它来自第三方平台.

java datetime java-8

7
推荐指数
1
解决办法
2358
查看次数

标签 统计

datetime ×1

java ×1

java-8 ×1