在java的简单日期格式中强制4位数字年份
2022-09-03 15:41:35
我想使用格式为“ymmdd”的简单DateFormat来验证和解析日期,这也允许100624,它被解析为10年(Julius Ceasar去世后54年)。日期也将类似于1970年,所以我不想用SimpleDateFornat(“yymmdd”)来解决。
我想知道有没有办法使用SimpleDateFormat强制使用四位数的年份格式?我即将提前进行正则表达式测试,但也许有一种聪明的方法来使用(简单)DateFormat()?
按照代码的要求,事情变得越来越复杂,我的研究只有一半。使用的格式是 yyyy-MM-dd(它来自一个变量,它有一个错误的 javadoc)。但是,正如yyMMdd下面的答案所示,确实强制使用四年数字。因此,我的问题更改为如何强制“y-MM-dd”格式使用四位数年份。为什么“yyyyMMdd”的行为不同?
public void testMaturity() {
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
sdf.setLenient(false);
System.out.println(" " + sdf.format(sdf.parse("40-12-14")));
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyyMMdd");
sdf.setLenient(false);
System.out.println(" " + sdf2.format(sdf2.parse("401214")));
fail();
} catch (ParseException pe) {
assertTrue(true);
}
打印 0040-12-14