Непонятное исключение даты в Java - PullRequest
0 голосов
/ 15 октября 2011

эти строки кодов

SimpleDateFormat formatter = new SimpleDateFormat("dd/mm/yy"); 

     ContentValues values = new ContentValues();
        values.put(COL_EVENT_ID, appointment.mEventId);
        try {
            values.put(COL_START_DATE, String.valueOf(formatter.parse(appointment.mStartDate.toString())));
            values.put(COL_END_DATE, String.valueOf(formatter.parse(appointment.mEndDate.toString())));

        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

вызывает это исключение

10-15 11:44:38.150: WARN/System.err(3861): java.text.ParseException: Unparseable date: "Mon Jan 10 00:10:00 GMT+02:00 2011"

Какое возможное решение?

1 Ответ

6 голосов
/ 15 октября 2011

Ваш формат неверный. Вы используете не только mm (что означает минуты), когда вы, вероятно, имели в виду MM, но это:

Mon Jan 10 00:10:00 GMT+02:00 2011

явно не в формате

dd/MM/yy

Вы, вероятно, хотите что-то вроде

EEE MMM dd HH:mm:ss z yyyy

РЕДАКТИРОВАТЬ: Это работает для меня в настольной Java:

import java.text.*;

public class Test {

    public static void main(String[] args) throws ParseException {
        String value = "Mon Jan 10 00:10:00 GMT+02:00 2011";
        String pattern = "EEE MMM dd HH:mm:ss z yyyy";
        DateFormat format = new SimpleDateFormat(pattern);
        System.out.println(format.parse(value));
    }
}

Вы можете установить культуру SimpleDateFormat.

...