当前位置:  开发笔记 > Android > 正文

JodaTime - 如何将ISO 8601时间字符串解析为DateTime?

如何解决《JodaTime-如何将ISO8601时间字符串解析为DateTime?》经验,为你挑选了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对象?



1> Jon Skeet..:

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

返回一个格式化程序,它将完整的日期和时间组合在一起,没有毫秒,用'T'分隔(yyyy-MM-dd'T'HH:mm:ssZZ).

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

推荐阅读
oDavid_仔o_880
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有