有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

datetime Java 8 LocalDateTime在分析带有00秒的日期字符串值时删除00秒值,如“20180706 00:00:00”

下面的代码(Java 8)片段在使用LocalDateTime解析的日期内,当秒值为0时,会删除我的日期时间的秒部分。解析,比如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);

日期打印为:

Lexical Date : 2018-07-10T00:00

而不是:

Lexical Date : 2018-07-10T00:00:00

现在,这会影响公历的日期值,当第二个被删除时,将返回null。在其他情况下,当秒值大于零时,它工作正常

javax.xml.datatype.DatatypeFactory.newInstance().newXMLGregorianCalendar(lexicalDate)

每当由于解析字符串中的00秒值而删除秒值时,上述代码将返回null

是否有人能帮助我们更好地使用LocalDate时间处理这个问题,否则它可能是Java8LocalDateTime中的一个bug/full控件

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


共 (0) 个答案