Java 如何使用前导空格解析LocalDateTime?
我正在尝试使用LocalDateTime解析html页面中的日期。我无法想出解决方案使下面的测试通过 (使用TestNG)第一行始终失败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
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。