以下是此日期字符串java8
"2016-08-30T06:18:17:698-0600"
代码
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("YYYY-MM-DD'T'HH:mm:ss:SSS'-'XXX");
String attDate = "2016-08-30T06:18:17:698-0600";
//attDate = attDate.substring(0, 19);
System.out.println("####attask date: "+attDate);
LocalDateTime dt = LocalDateTime.parse(attDate, formatter);
System.out.println(dt);
将LocalDate
与截断日期字符串一起使用可解决此问题,但我无法删除Time
并使用LocalDate
代替LocalDateTime
请说明这里出了什么问题。我还需要为什么你的答案会奏效。
答案 0 :(得分:4)
区域偏移中的减号是区域偏移表达式的一部分,您不应该将其作为文字转义。
答案 1 :(得分:2)
如果您将模式更改为yyyy-MM-dd'T'HH:mm:ss.SSSZ
,则会打印2016-08-30T06:18:17.123
。
但在您的代码中,当正确为:
时,日期为.
,以毫秒为单位。
完整代码:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
String attDate = "2016-08-30T06:18:17.123-0600";
//attDate = attDate.substring(0, 19);
System.out.println("####attask date: "+attDate);
LocalDateTime dt = LocalDateTime.parse(attDate, formatter);
System.out.println(dt);
<强>输出:强>
####attask date: 2016-08-30T06:18:17.123-0600
2016-08-30T06:18:17.123