1

我有以下格式的时间字符串:

2016-01-07T08:00:00+00:00

当我尝试使用以下方法解析字符串时。

public static DateTime getDateTimeObject(String dateTime) {
        //DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern(PATTERN);
        //DateTime dateTimeObj = dateTimeFormatter.parseDateTime(dateTime);
        Logger.d(dateTime);
        DateTime dateTimeObj = null;
        try {
            dateTimeObj = ISODateTimeFormat.dateTime().parseDateTime(dateTime);
            return dateTimeObj;
        } catch (Exception e) {
            Logger.e(e.getMessage());
        }
        return dateTimeObj;
    }

我总是得到以下异常。

Invalid format: "2016-01-07T08:00:00+00:00" is malformed at "+00:00"

如何解析 ISO 格式的字符串以获取有效的 DateTime 对象?

4

1 回答 1

7

您的值没有毫秒组件,因此您想要ISODateTimeFormat.dateTimeNoMillis()

返回一个格式化程序,它结合了完整的日期和时间,不带毫秒,用“T”分隔(yyyy-MM-dd'T'HH:mm:ssZZ)。

dateTime()方法返回一个格式化程序,其格式与yyyy-MM-dd'T'HH:mm:ss.SSSZZ您的字符串不符合。

于 2016-01-06T09:49:50.410 回答