使用 Java 8 将字符串转换为 DateTime 对象

Convert string to DateTime object with Java 8

我想用新的 Java 8 时间库以最简单的方式将带分区偏移的以下字符串转换为 DateTime 类型:

2016-04-11T22:56:00.000-0500

我已经尝试过 ISO_OFFSET_DATE_TIME 格式和 ZonedDateTime 对象,但我似乎无法找到一种简单的方法来做到这一点。提前致谢。

您的问题的解决方案应该如下所示:

String ts = "2016-04-11T22:56:00.000-0500";
ZonedDateTime zdt = ZonedDateTime.parse(ts, DateTimeFormatter.ISO_OFFSET_DATE_TIME);

我认为您找不到内置的格式化程序来解析该字符串,但创建一个相当简单:

DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSx");
OffsetDateTime date = OffsetDateTime.parse("2016-04-11T22:56:00.000-0500", fmt);