Android 将字符串解析为Joda DateTime时出现IllegalArgumentException

Android 将字符串解析为Joda DateTime时出现IllegalArgumentException,android,datetime,jodatime,Android,Datetime,Jodatime,我试图从字符串startTime创建一个Joda DateTime对象,然后格式化它并提取超时值,例如H:mm 我得到以下例外情况。谁能告诉我为什么 提前谢谢你,马特 startTime = startTime.trim(); Log.e(TAG, "startTime = " + startTime); DateTimeFormatter dtf = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ssZ"); DateTime dt = dtf

我试图从字符串startTime创建一个Joda DateTime对象,然后格式化它并提取超时值,例如H:mm

我得到以下例外情况。谁能告诉我为什么

提前谢谢你,马特

startTime = startTime.trim();

Log.e(TAG, "startTime = " + startTime);

DateTimeFormatter dtf = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ssZ");
DateTime dt = dtf.parseDateTime(startTime);

DateTimeFormatter fmt = DateTimeFormat.forPattern("HH:mm");
String formattedStart = fmt.print(dt);

Log.e(TAG, "formattedStart = " + formattedStart);


如果您使用的是GMT日期,最好使用来自Joda的标准ISODATE时间格式。例如:

startTime = startTime.trim();

Log.e(TAG, "startTime = " + startTime);

DateTimeFormatter dtf = ISODateTimeFormat.dateTime();
DateTime dt = dtf.parseDateTime(startTime);

DateTimeFormatter fmt = DateTimeFormat.forPattern("HH:mm");
//optional, you can also define locale and zone
//.withLocale(Locale.getDefault())
//.withZone(DateTimeZone.getDefault());
String formattedStart = fmt.print(dt);

Log.e(TAG, "formattedStart = " + formattedStart);
startTime = startTime.trim();

Log.e(TAG, "startTime = " + startTime);

DateTimeFormatter dtf = ISODateTimeFormat.dateTime();
DateTime dt = dtf.parseDateTime(startTime);

DateTimeFormatter fmt = DateTimeFormat.forPattern("HH:mm");
//optional, you can also define locale and zone
//.withLocale(Locale.getDefault())
//.withZone(DateTimeZone.getDefault());
String formattedStart = fmt.print(dt);

Log.e(TAG, "formattedStart = " + formattedStart);