amp*_*ila 7 timezone datetime jodatime java-8 java-time
我试图使用Java 8新的日期模式而不是Joda,我有以下问题:
都
ZonedDateTime.parse("02/05/16 11:51.12.083 +04:30", DateTimeFormatter.ofPattern("dd/MM/yy HH:mm.ss.SSS Z"))
Run Code Online (Sandbox Code Playgroud)
和
LocalDateTime.parse("02/05/16 11:51.12.083 +04:30", DateTimeFormatter.ofPattern("dd/MM/yy HH:mm.ss.SSS Z"))
Run Code Online (Sandbox Code Playgroud)
抛出'java.time.format.DateTimeParseException'异常.而
org.joda.time.DateTime.parse("02/05/16 11:51.12.083 +04:30", DateTimeFormat.forPattern("dd/MM/yy HH:mm.ss.SSS Z"))
Run Code Online (Sandbox Code Playgroud)
工作良好.
异常的原因是:
java.time.format.DateTimeParseException:无法在索引22处解析文本'02/05/16 11:51.12.083 +04:30'
难道我做错了什么?
如果您阅读了javadocDateTimeFormatter,您将找到一个详细说明如何使用Z偏移的部分(强调我的):
偏移Z:根据图案字母的数量格式化偏移.一个,两个或三个字母输出小时和分钟,没有冒号,例如'+0130'.当偏移量为零时,输出将为"+0000".四个字母输出完整形式的局部偏移,相当于Offset-O的四个字母.如果偏移为零,则输出将是相应的本地化偏移文本.五个字母输出小时,分钟,可选第二个,如果非零,则使用冒号.如果偏移量为零,则输出"Z".六个或更多字母抛出IllegalArgumentException.
所以使用5 Z秒将按预期工作:
ZonedDateTime.parse("02/05/16 11:51.12.083 +04:30",
DateTimeFormatter.ofPattern("dd/MM/yy HH:mm.ss.SSS ZZZZZ"));
Run Code Online (Sandbox Code Playgroud)
请注意,您可以获得类似的结果:
zzzzzzzzzzxxxXXXxxxxxXXXXX| 归档时间: |
|
| 查看次数: |
6974 次 |
| 最近记录: |