Java 8 日期和时间 API - 解析 yyyy-MM-dd'T'HH :mm:ss. SSSZ

标签 java java-8 java-time

我正在尝试解析 ISO8601 格式的日期:

yyyy-MM-dd'T'HH:mm:ss.SSSZ

我是否正确认为无法使用 java.time.format.DateTimeFormatter 中定义的任何默认格式对其进行解析?

例如 ISO_OFFSET_DATE_TIME 将只解析:

yyyy-MM-dd'T'HH:mm:ss.SSSZZ

示例:

yyyy-MM-dd'T'HH:mm:ss.SSSZ
2015-04-29T10:15:00.500+0000

yyyy-MM-dd'T'HH:mm:ss.SSSZZ
2015-04-29T10:15:00.500+00:00

顺便说一句:我知道我可以定义我自己的格式化程序,这不是问题。只是想确保我没有遗漏任何东西,因为 JodaISODateTimeFormat 能够解析两者:

 org.joda.time.format.DateTimeFormatter dateTimeFormatter = ISODateTimeFormat.dateTime();
 DateTime dateTime = dateTimeFormatter.parseDateTime("2015-04-29T10:15:00.500+0000");

最佳答案

我不确定这是您期望的答案。

方法一

使用 Instant 解析

Instant.parse("2015-06-28T10:13:14.743Z");

方法二

给定的输入格式等同于 ISO_DATE_TIME 格式 从给定模式 yyyy-MM-dd'T'HH:mm:ss.SSSZ 中删除 'Z' 后

然后我们可以使用 ISO_DATE_TIME 解析它

 text = "2015-06-28T10:13:14.743"
 LocalDateTime.parse(text,DateTimeFormatter.ISO_DATE_TIME)

关于Java 8 日期和时间 API - 解析 yyyy-MM-dd'T'HH :mm:ss. SSSZ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29938237/

相关文章:

java - Java 8 中新的日期和时间 API

java - MySQL关于重复键更新的PreparedStatement

java - 将对象提供给消费者并返回对象

Java 8 Stream API min() 和 max() 与收集器 minBy() 和 maxBy()

Java8 : how to copy values of selected fields from one object to other using lambda expression

java - 如何计算Java中特定两个日期之间的星期日

java - 如何检查日期和时间戳是在 20 分钟之前

Java序列化到文件

java - OpenGL 3D 中的平滑模型移动

java - JodaTime DateTime 和使用 AM/PM 处理语言环境