JodaTime - 如何将 ISO 8601 时间字符串解析为 DateTime?
JodaTime - how to parse ISO 8601 time string into DateTime?
我有以下格式的时间字符串:
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()
:
Returns a formatter that combines a full date and time without millis, separated by a 'T' (yyyy-MM-dd'T'HH:mm:ssZZ).
dateTime()
方法 returns 格式为 yyyy-MM-dd'T'HH:mm:ss.SSSZZ
的格式化程序,您的字符串不符合该格式。
我有以下格式的时间字符串:
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()
:
Returns a formatter that combines a full date and time without millis, separated by a 'T' (yyyy-MM-dd'T'HH:mm:ssZZ).
dateTime()
方法 returns 格式为 yyyy-MM-dd'T'HH:mm:ss.SSSZZ
的格式化程序,您的字符串不符合该格式。