2012-06-11 2 views
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 

pleaseee помочь мне

+0

Что означает kk в формате даты? – mihail

+0

@mihail: 'k' - это час в день (1-24), в отличие от «H» (0-23). –

ответ

2

Там нет необходимости давать 'T', в DateFormat, вместо этого вы можете указать 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 
+0

его тоже не работает, я пробовал это – maddy

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

+0

его не работает – maddy

+0

Ой, подождите ... почему это «kk»? Разве это не должно быть «hh»? –

+0

обе работы отлично не проблема в этом – maddy

0

удалить T символ из вашей строки, а затем использовать

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

вы уверены об этих kk?

+0

yaaa ..... Я уверен в этом – maddy

0

Вы просто пропустите ")" в

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

Вы можете просто напечатать reminder.getString (DateString), делает это правильно?

Смежные вопросы