1

我需要将输入日期格式更改为我想要的格式。

String time = "Fri, 02 Nov 2012 11:58 pm CET";
SimpleDateFormat displayFormat = 
    new SimpleDateFormat("dd.MM.yyyy, HH:mm");
SimpleDateFormat parseFormat = 
    new SimpleDateFormat("EEE, dd MMM yyyy HH:mm aa z");
Date date = parseFormat.parse(time);
System.out.println("output is " + displayFormat.format(date));

它给了我这个错误

java.text.ParseException: Unparseable date: "Fri, 02 Nov 2012 11:58 pm CET"
    at java.text.DateFormat.parse(Unknown Source)
    at Main.main(Main.java:10)

任何人都可以帮助我吗?因为这段代码不起作用。

4

3 回答 3

1

Androidz似乎不接受 XXX 格式的时区(例如“CET”)。(从文档SimpleDateFormat提取。)

试试这个:

String time = "Fri, 02 Nov 2012 11:58 pm +0100"; // CET = +1hr = +0100
SimpleDateFormat parseFormat = 
    new SimpleDateFormat("EEE, dd MMM yyyy hh:mm aa Z"); // Capital Z
Date date = parseFormat.parse(time);

SimpleDateFormat displayFormat = 
    new SimpleDateFormat("dd.MM.yyyy, HH:mm");
System.out.println("output is " + displayFormat.format(date));

输出为 02.11.2012, 22:58

注意:另外,我认为您的意思是hh代替HH,因为您有PM.

结果显示在这里。(这使用 Java7 SimpleDateFormat,但 Android 也应该支持 RFC 822 timezones ( +0100)。)

注意:此外,由于 Android 似乎z接受全名(“太平洋标准时间”是他们给出的示例),您可以简单地指定“中欧时间”而不是“CET”。

于 2012-11-03T06:38:13.293 回答
0

首先,我必须同意@Eric 的回答。

您只需要从日期字符串中删除“CET”。

这是示例代码。核实。

        String time = "Fri, 02 Nov 2012 11:58 pm CET";
        time = time.replaceAll("CET", "").trim();
        SimpleDateFormat displayFormat = 
            new SimpleDateFormat("dd.MM.yyyy, HH:mm");
        SimpleDateFormat parseFormat = 
            new SimpleDateFormat("EEE, dd MMM yyyy HH:mm aa");
        Date date = null;
        try {
            date = parseFormat.parse(time);
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        System.out.println("output is " + displayFormat.format(date));
于 2012-11-03T07:00:37.903 回答
0

试试下面的代码:

SimpleDateFormat date_format = new SimpleDateFormat("yyyyMMMdd");
    System.out.println(date_format.format(cal.getTime()));

它会工作..如果不打印日志猫?什么错误来了?

于 2012-11-03T06:34:50.113 回答