将给定的String转换为Date对象

问题描述 投票:1回答:2

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

java date simpledateformat
2个回答
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());

0
投票

代码的问题是你在格式化程序中放了一个额外的空格。

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
© www.soinside.com 2019 - 2024. All rights reserved.