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

を宣言し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 に答える
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 に答える
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);

リマインダー.getString(dateString) を印刷できますか?

于 2012-06-11T09:32:37.333 に答える