我有以下格式的时间字符串:
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对象?
答案 0 :(得分:6)
您的值没有毫秒组件,因此您需要ISODateTimeFormat.dateTimeNoMillis()
:
返回一个格式化程序,它结合了一个完整的日期和时间,没有毫秒,由一个' T' (YYYY-MM-DD' T' HH:MM:ssZZ)。
dateTime()
方法返回格式为var User = keystone.list('User').model;
var user = new User({
name: { first:'Abcd', last:'xyz' },
email: 'abc@xyz.com',
password: 'password',
isAdmin: true
});
user.save(function (err) {
if (err) {
// handle error
return console.log(err);
}
// user has been saved
console.log(user);
});
的格式化程序,您的字符串不符合该格式。