Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 日期解析失败_Java_Date - Fatal编程技术网

Java 日期解析失败

Java 日期解析失败,java,date,Java,Date,我有以下单元测试: @Test public void testDateParsing() { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("E, dd MMM yyyy HH:mm:ss Z (z)"); String dateString = "Mon, 5 Mar 2001 08:23:00 -0800 (PST)"; ZonedDateTime dateTime =

我有以下单元测试:

    @Test
    public void testDateParsing() {
      DateTimeFormatter formatter = DateTimeFormatter.ofPattern("E, dd MMM yyyy HH:mm:ss Z (z)");
      String dateString = "Mon, 5 Mar 2001 08:23:00 -0800 (PST)";
      ZonedDateTime dateTime = ZonedDateTime.parse(dateString, formatter);
    }
它失败并抛出一个
DateTimeParseException
,我不知道为什么。例外情况如下:

java.time.format.DateTimeParseException: Text 'Mon, 5 Mar 2001 08:23:00 -0800 (PST)' could not be parsed at index 5
    at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1947)
    at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1849)
    at java.time.ZonedDateTime.parse(ZonedDateTime.java:597)
    at parser.ParserTest.testDateParsing(Parser.java:26)
知道这里的日期怎么了吗?其他日期,如以下工作罚款:


String dateString=“Wed,2000年3月15日08:52:00-0800(太平洋标准时间)”

此代码在删除dd后生效,只需使用d,已尝试并生效:

        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("E, d MMM yyyy HH:mm:ss Z (z)");
        String dateString = "Mon, 5 Mar 2001 08:23:00 -0800 (PST)";
        ZonedDateTime dateTime = ZonedDateTime.parse(dateString, formatter);

这是因为您有'dd'来表示日期,但在示例字符串中有'5'作为日期组件。如果它是05作为日期,那么它将被正确解析。对于日期字符串,模式应为:

DateTimeFormatter.ofPattern("E, d MMM yyyy HH:mm:ss Z (z)")

你是不是想做那件事试试这件事?因为这真的很聪明。请补充一些解释。目前,您的答案被标记为“低质量”,可能会被删除。