Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.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 如何使用前导空格解析LocalDateTime?_Java_Parsing_Datetime_Formatting_Java 8 - Fatal编程技术网

Java 如何使用前导空格解析LocalDateTime?

Java 如何使用前导空格解析LocalDateTime?,java,parsing,datetime,formatting,java-8,Java,Parsing,Datetime,Formatting,Java 8,我正在尝试使用LocalDateTime解析html页面中的日期。我无法想出解决方案使下面的测试通过 (使用TestNG)第一行始终失败 static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("E MMM dd HH:mm:ss u"); @DataProvider(name = "dateTimeFormats") public Object[][] dateTimeForma

我正在尝试使用LocalDateTime解析html页面中的日期。我无法想出解决方案使下面的测试通过

(使用TestNG)第一行始终失败

static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("E MMM dd HH:mm:ss u");

    @DataProvider(name = "dateTimeFormats")
public Object[][] dateTimeFormats() {
    return new Object[][]{
            {"Mon Jan  5 06:41:07 2015", LocalDateTime.of(2015, 1, 5, 6, 41, 7)},
            {"Sun Jan 25 00:48:23 2015", LocalDateTime.of(2015, 1, 25, 0, 48, 23)},
            {"Mon Aug 14 07:58:00 2006", LocalDateTime.of(2006, 8, 14, 7, 58, 0)}
    };
}

@Test(dataProvider = "dateTimeFormats")
public void testParsePostDateTime(String dateTimeString, LocalDateTime expectedResult) {
    LocalDateTime result = LocalDateTime.parse(dateTimeString, DATE_TIME_FORMATTER);
    assertEquals(result, expectedResult);
}

您知道应该使用哪种日期模式吗?

您可以使用模式“E MMM ppd HH:mm:ss u”。p符号的解释请参见。这意味着填充下一个字段的宽度,因为有可用的p字母计数。

您的dateTimeString和expectedResult是什么?@almasshaikh当我试图解析这个字符串“Mon Jan 5 06:41:07 2015”-我想得到这个结果LocalDateTime.of(2015,1,5,6,41,7)插入
dateTimeString.replaceAll会不会太麻烦(“+”,“)
?这是一个非常优雅的解决方案。这正是我想要的。在“d”之前加上两个“pp”似乎违反直觉,只需加上一个空格“1”,“2”…可能意思是“pp”使用了两个字符,“d”是月的日期字段?()@MarianoPaniga符号p基于其参数的生成器方法(与模式字母的计数相同)指定字段的整个宽度。因此,两位数字段需要两个字母pp。