android中的日期解析错误

时间:2012-06-11 08:43:05

标签: android parsing datetime

这是代码

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 个答案:

答案 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),做对吗?