我试图将“dd-MM-yy”格式的字符串解析为Date对象.问题在于它试图猜测日期的世纪.
当从01到31指定时,年份被解释为2000s(21世纪),32 t0 99被认为是1900年代(20世纪).
SimpleDateFormat fm =new SimpleDateFormat("dd-MM-yy");
String datestr="21-11-31";
try {
Date date= fm.parse(datestr);
System.out.println(date);
} catch (ParseException e) {
}
谁能帮我?我怎么能说明我只是整整地在21世纪工作.我并没有完全试图寻找操纵字符串或根据条件移动日期的技巧.
解决方法:
您可以使用set2DigitYearStart()方法更改用于解释2位数据条目的世纪.
SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yy");
String aDate = "03/17/40";
Calendar cal = Calendar.getInstance();
cal.clear();
cal.set(Calendar.YEAR, 2000);
dateFormat.set2DigitYearStart(cal.getTime());
System.out.println(dateFormat.get2DigitYearStart());
System.out.println(dateFormat.parse(aDate));
将于2040年3月17日发行.
标签:java,datetime
来源: https://codeday.me/bug/20191001/1840668.html