我有一个给定的字符串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);
,但它给出如下异常。
线程“主”中的异常java.text.ParseException:无法解析的日期: “ 2019-04-17 11:02:46 + 02:00” 在java.text.DateFormat.parse(未知来源)
答案 0 :(得分:1)
代码的问题是您在格式化程序中留出了额外的空间。
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
答案 1 :(得分:0)
这是默认的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());