3

我要解析的字符串:

2013 年 11 月 10 日星期日 10:00:00 CET

我的代码:

substrings = "Sun Nov 10 10:00:00 CET 2013"

SimpleDateFormat parserSDF = new SimpleDateFormat("EEE MMM d HH:mm:ss ZZZ yyyy");
Date date = parserSDF.parse(substrings);

编译器错误输出:

java.text.ParseException:无法解析的日期:“Sun Nov 10 10:00:00 CET 2013”​​在 java.text.DateFormat.parse(Unknown Source) ...

4

4 回答 4

1

可能您缺少正确的语言环境。试试这个,在你的例子中:

    SimpleDateFormat parserSDF = new SimpleDateFormat("EEE MMM d HH:mm:ss ZZZ yyyy", Locale.US);
于 2013-02-06T16:50:39.760 回答
0

ZZZ 将尝试按照 RFC 822 时区格式化时区,请改用 zzz。

这是供参考的JavaDoc链接

于 2013-02-06T16:55:11.653 回答
0
于 2018-09-04T04:38:17.820 回答
-1

问题是 parserSDF 采用字符串而不是数组和 ParsePosition。我写这个是为了输出我认为你想要的。

import java.text.*;
public class Parser{
    public static void main(String[] args){
    String input = "Sun Nov 10 10:00:00 CET 2013";
    SimpleDateFormat parserSDF = new SimpleDateFormat("EEE MMM d HH:mm:ss ZZZ yyyy");
    System.out.println(parserSDF.parse(input, new ParsePosition(0)));
    }
}

我建议查看API中的SimpleDateFormatParsePosition

于 2013-02-06T17:11:40.353 回答