我有以下格式的时间字符串:
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对象?
您的值没有毫秒组件,因此您需要ISODateTimeFormat.dateTimeNoMillis()
:
返回一个格式化程序,它将完整的日期和时间组合在一起,没有毫秒,用'T'分隔(yyyy-MM-dd'T'HH:mm:ssZZ).
该dateTime()
方法返回格式化程序,格式化程序yyyy-MM-dd'T'HH:mm:ss.SSSZZ
的字符串不符合该格式.