首页 > 解决方案 > 从日期字符串转换为日期时出现日期解析异常

问题描述

如何在java中解析这个日期字符串

“2020-06-12T00:00:00.000+00:00”

我尝试了以下代码:

public static String convertToStandardDateString(String date) {
        // 2020-06-12T00:00:00.000+00:00
        String resDate = null;
        try {
            DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'+'X");
            Date parsedDate = sdf.parse(date);
            resDate = sdf.format(parsedDate);
        } catch (Exception e) {

        }
        return resDate;
    }

我得到ParsingException了上面的代码。

标签: javadate

解决方案


停止使用已弃用的java.util.Date并开始使用 java-8 date-time api。您拥有的日期字符串表示带有偏移量的日期时间,因此您可以将其直接解析为OffsetDateTime

在 ISO-8601 日历系统中与 UTC/格林威治有偏移的日期时间,例如 2007-12-03T10:15:30+01:00。

OffsetDateTime offsetDateTime = OffsetDateTime.parse("2020-06-12T00:00:00.000+00:00");

推荐阅读