这是代码
public static final String DATE_TIME_FORMAT = "yyyy-MM-dd kk:mm:ss";
public static final String KEY_DATE_TIME = "reminder_date_time";
SimpleDateFormat datetimeFormat = new SimpleDateFormat(DATE_TIME_FORMAT) ;
try {
String dateString = reminder.getString(reminder.getColumnIndexOrThrow(ReminderDbAdapter.KEY_DATE_TIME));
Date date = (Date) datetimeFormat.parse(reminder.getString(dateString);
mCalendar.setTime(date);
} catch (java.text.ParseException e) {
Log.e("edit_activity", e.getMessage(), e);
}
它没有解析日期,因为所有值都被提取但是日期没有被解析,所以logcat显示错误。
error::06-11 14:08:59.320: E/edit_activity(361): java.text.ParseException: Unparseable date: 2012-03-11 13:14:49
请我帮帮忙
答案 0 :(得分:2)
在DateFormat中没有必要给'T',而是可以指定SimpleDateFormat,如下所示:
public static final String DATE_TIME_FORMAT = "yyyy-MM-dd kk:mm:ss";
kk = Hours in 1-24 format
hh= hours in 1-12 format
KK= hours in 0-11 format
HH= hours in 0-23 format
答案 1 :(得分:2)
您声明了DATE_TIME_FORMAT = "yyyy-MM-dd'T'kk:mm:ss"
,但是您的时间格式为"yyyy-MM-dd kk:mm:ss"
- 因此无法解析它。从您的格式中删除'T'
- 您就可以了。
我刚用这段代码测试过:
public static final String DATE_TIME_FORMAT = "yyyy-MM-dd kk:mm:ss";
public static final String KEY_DATE_TIME = "reminder_date_time";
SimpleDateFormat datetimeFormat = new SimpleDateFormat(DATE_TIME_FORMAT) ;
try {
String dateString = "2012-03-11 13:14:49";
Date date = (Date) datetimeFormat.parse(dateString);
System.out.println(date);
} catch (java.text.ParseException e) {
e.printStackTrace();
}
它工作得很好,打印Sun Mar 11 13:14:49 GMT 2012
答案 2 :(得分:0)
从字符串中删除T字符,然后使用
public static final String DATE_TIME_FORMAT = "yyyy-MM-dd hh:mm:ss";
你知道这些kk的确定吗?
答案 3 :(得分:0)
你只是错过了一个“)”
Date date = (Date) datetimeFormat.parse(reminder.getString(dateString);
你能打印提醒.getString(dateString),做对吗?