我想解析一个日期字符串,但不幸地失败了。为了说明我的问题,我编写了这个简单的JUnit测试:
@Test
public void testParseJavaDate() throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-DD_HH-mm-ss", Locale.GERMAN);
String inputtime = "2011-04-21_16-01-08";
Date parse = sdf.parse(inputtime);
assertEquals(inputtime,sdf.format(parse));
}此测试在以下消息中失败:
org.junit.ComparisonFailure:预期:<2011-04-21_16-01-08>,但<2011-01-21_16-01-08>
我不明白格式化程序为什么不能正确解析日期。你有什么想法吗?
发布于 2011-05-13 13:13:02
您需要"dd“(月中的日期),而不是"DD”(年中的日期):
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss", Locale.GERMAN);发布于 2011-05-13 13:16:48
SimpleDateFormat sdf =新的SimpleDateFormat(“yyyy_HH”,Locale.GERMAN);
String inputtime = "2011-04-21_16-01-08";
Date parse = sdf.parse(inputtime);使用DD代替dd。
发布于 2011-05-13 13:13:32
使用d而不是D,因为D是“一年中的一天”,因此月份必须与一年中的第21天(即1月)相匹配。
https://stackoverflow.com/questions/5992331
复制相似问题