0

这是代码

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

请帮帮我

4

4 回答 4

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
于 2012-06-11T08:46:23.050 回答
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

于 2012-06-11T08:46:32.800 回答
0

从字符串中删除 T 字符,然后使用

public static final String DATE_TIME_FORMAT = "yyyy-MM-dd hh:mm:ss";

你确定这些kk吗?

于 2012-06-11T08:48:26.837 回答
0

你只是错过了一个“)”在

Date date =  (Date) datetimeFormat.parse(reminder.getString(dateString);

你可以打印reminder.getString(dateString),对吗?

于 2012-06-11T09:32:37.333 回答