将给定的String转换为Date对象

时间:2019-04-17 15:15:15

标签: java date simpledateformat

我有一个给定的字符串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(未知来源)

2 个答案:

答案 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());