Tau*_*ura 7 java datetime java-8
代码(爪哇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中的错误/有趣控件.
请注意,我无法控制此日期值,它来自第三方平台.
您正在查看DateTimeFormatter
该LocalDateTime::toString
方法使用 的特定行为的记录行为.
摘录,我的重点:
输出将是以下ISO-8601格式之一:
UUUU-MM-dd'T'HH:毫米
UUUU-MM-dd'T'HH:MM:SS
UUUU-MM-dd'T'HH:MM:SS.SSS
UUUU-MM-dd'T'HH:MM:SS.SSSSSS
UUUU-MM-dd'T'HH:MM:ss.SSSSSSSSS
使用的格式将是最短的,输出省略的部分隐含为零的时间的完整值.
如果在生成表示您的值的String时需要其他行为LocalDateTime
,请使用其他行为DateTimeFormatter
并将其传递给LocalDateTime::format
.
String output = myLocalDateTime.format( someOtherFormatter ) ;
Run Code Online (Sandbox Code Playgroud)
在LocalDateTime
没有"格式",因为它是没有文字.它是DateTimeFormatter
解析或生成String
特定格式的对象的工作.
归档时间: |
|
查看次数: |
2358 次 |
最近记录: |