为什么以下命令无法运行,日期时间字符串无法解析为OffsetDateTime?
String inputOdt = "2016-01-23T12:34:56 GMT+8";
DateTimeFormatter formatterOdt = DateTimeFormatter.ofPattern ( "yyyy-MM-dd'T'HH:mm:ss O" );
OffsetDateTime odt = OffsetDateTime.parse ( inputOdt , formatterOdt );
Run Code Online (Sandbox Code Playgroud)
使用Java(TM) SE Runtime Environment (build 1.8.0_92-b14)Mac OS X上埃尔卡皮坦10.11.4.
生成错误:
线程"main"中的异常java.time.format.DateTimeParseException:无法解析文本'2016-01-23T12:34:56 GMT + 8':字符串索引超出范围:25
所述偏移从-UTC串GMT+8从类文件在例如复制粘贴DateTimeFormatter.报价:
偏移O:根据模式字母的数量格式化本地化偏移.一个字母输出本地化偏移的缩写形式,即局部偏移文本,例如'GMT',小时不带前导零,可选2位数分钟,第二个非零,和冒号,例如'GMT + 8 ".
字符串的其余部分成功解析为LocalDateTime.所以问题似乎确实是从UTC部分偏移.
String inputLdt = "2016-01-23T12:34:56";
DateTimeFormatter formatterLdt = DateTimeFormatter.ofPattern ( "yyyy-MM-dd'T'HH:mm:ss" );
LocalDateTime ldt = LocalDateTime.parse ( inputLdt , formatterLdt );
System.out.println ( "" );
System.out.println ( …Run Code Online (Sandbox Code Playgroud)