bad*_*era 4 java java-8 java-time
如果我做
import java.time.Instant;
...
Instant instant = Instant.parse("2018-01-02T18:14:59.000+01:00")
Run Code Online (Sandbox Code Playgroud)
我得到这个例外:
Caused by: java.time.format.DateTimeParseException: Text '2018-06-19T23:00:00.000+01:00' could not be parsed at index 23
at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1949)
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1777)
Run Code Online (Sandbox Code Playgroud)
但是如果我这样做
Instant instant = Instant.parse("2018-06-19T23:00:00.000Z");
Run Code Online (Sandbox Code Playgroud)
一切正常。
我想念什么?第一次字符串有什么问题?
原因是您的第一个String与parse方法可接受的格式不匹配
如文档所述Instant#parse(CharSequence text):
该字符串必须表示UTC中的有效时刻,并使用DateTimeFormatter.ISO_INSTANT进行解析
和DateTimeFormatter#ISO_INSTANT状态的文档:
用于格式化或解析UTC中的即时消息的ISO即时格式化程序,例如“ 2011-12-03T10:15:30Z”。
要获取Instant字符串,您需要:Workable Demo
String str = "2018-01-02T18:14:59.000+01:00";
Instant instant = DateTimeFormatter.ISO_OFFSET_DATE_TIME.parse(str, Instant::from);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
878 次 |
| 最近记录: |