解析带有空格的String到Date,导致ParseException

And*_*eaF 0 java android date simpledateformat

我有这种形式的日期字符串 Thu Aug 02 00:00:00 GMT+00:00 2012

我试图使用此方法来解析Date对象中的这些String

public Date fromStringToDate(String data) {
        Date result;
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy MM dd HH:mm:ss");
        try {
            result = sdf.parse(data);
            return result;
        } catch (ParseException e) {
            e.printStackTrace();
            return null;
        }
    }
Run Code Online (Sandbox Code Playgroud)

但是没有用,我得到了这个错误

java.text.ParseException: Unparseable date: "Thu Aug 02 00:00:00 GMT+00:00 2012"
Run Code Online (Sandbox Code Playgroud)

我认为问题是由错误引起的SimpleDateFormat,但我不知道正确的语法来修复它.

man*_*nix 5

您需要将日期格式调整为给定的字符串:

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

确保使用正确的占位符,区分大小写等.查看日期和时间模式.

对不起,我的'z'模式有误,'Z'是:

SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy", Locale.US);
Run Code Online (Sandbox Code Playgroud)

请注意Locale.US,重要的是申请,因为月份和日期都是英语.