如何在Java中解析日期

时间:2018-07-03 09:34:41

标签: java java-date

Unparseable date: "Tue Jul 03 16:59:51 IST 2018" Exception

String date="Tue Jul 03 16:59:51 IST 2018";

我想解析它。 我的代码是

SimpleDateFormat newformat=SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ")
Date d=newformat.parse(date);

2 个答案:

答案 0 :(得分:2)

您使用的是旧的且有问题的类,尤其是Date

例如,也许考虑使用LocalDateTime

String date = "Tue Jul 03 16:59:51 IST 2018";
DateTimeFormatter format = DateTimeFormatter
        .ofPattern("EEE MMM dd HH:mm:ss z yyyy");
LocalDateTime dateTime = LocalDateTime.parse(date, format);

答案 1 :(得分:1)

由于您的模式必须与您要解析的字符串匹配,因此需要按以下方式调整模式:

EEE MMM dd HH:mm:ss z yyyy

docs收集的信息。

您还应该使用Java 8引入的新java.time API。

String s = "Tue Jul 03 16:59:51 IST 2018";
//Java 7 way
SimpleDateFormat newformat = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
Date d = newformat.parse(s);
//Java 8 way
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss z yyyy");
LocalDateTime dateTime = LocalDateTime.parse(s, formatter);