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