我有一个给定的字符串2019-04-17 10:00:43+02:00
,并希望将其转换为像Mon Apr 15 12:05:47 CEST 2019
我试过了:
String date = "2019-04-17T11:02:46+02:00"
SimpleDateFormat formatter= new SimpleDateFormat("yyyy-mm-dd'T'hh:mm:ssX ");
java.util.Date result = formatter.parse(date);
但它给出了如下的例外情况。
线程“main”中的异常java.text.ParseException:无法解析的日期:java.text.DateFormat.parse中的“2019-04-17 11:02:46 + 02:00”(未知来源)
这是一种默认的ISO格式,可以使用OffsetDateTime
进行解析:
String date = "2019-04-17T11:02:46+02:00";
OffsetDateTime odt = OffsetDateTime.parse(date);
如果你真的需要java.util.Date
,那么你可以使用:
Date legacyDate = Date.from(odt.toInstant());
代码的问题是你在格式化程序中放了一个额外的空格。
String date = "2019-04-17T11:02:46+02:00";
DateFormat format = new SimpleDateFormat("yyyy-mm-dd'T'hh:mm:ssX");
Date rst = format.parse(date);
System.out.println(rst);
输出:
Thu Jan 17 14:32:46 IST 2019