java中的无法解析的日期异常

Adh*_*ham 0 java datetime android date

这些代码行

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();
        }
Run Code Online (Sandbox Code Playgroud)

导致这个例外

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"
Run Code Online (Sandbox Code Playgroud)

什么是可能的解决方案?

Jon*_*eet 6

你的格式完全错了.mm当你可能意味着MM,你不仅使用(这意味着分钟),而且:

Mon Jan 10 00:10:00 GMT+02:00 2011
Run Code Online (Sandbox Code Playgroud)

显然不是格式

dd/MM/yy
Run Code Online (Sandbox Code Playgroud)

你可能想要这样的东西

EEE MMM dd HH:mm:ss z yyyy
Run Code Online (Sandbox Code Playgroud)

编辑:这适用于桌面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));
    }
}
Run Code Online (Sandbox Code Playgroud)

你可能想要设定SimpleDateFormat当然的文化.