1

如何将字符串"2016-03-23T11:23:11.305+01:00"转换为日期?

我已经尝试了以下方法,但我得到了 ParseException。

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
4

2 回答 2

1

来自SimpleDateFormat的 javadoc

z = 时区 一般时区 太平洋标准时间;太平洋标准时间; GMT-08:00

Z = 时区 RFC 822 时区 -0800

X = 时区 ISO 8601 时区 -08;-0800; -08:00 图案字母通常是重复的,因为它们的数量决定了确切的呈现方式:

您应该为时区定义SimpleDateFormataX以将其表示为ISO 8601as。

String d = "2016-03-23T11:23:11.305+01:00";
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
Date da = df.parse(d);

也取自本文档中的示例

“yyyy-MM-dd'T'HH:mm:ss.SSSXXX”= 2001-07-04T12:08:56.235-07:00

于 2016-03-23T13:35:03.530 回答
0

仅使用 1 ZSimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");

于 2016-03-23T13:29:50.973 回答