我正在尝试将“dd-MM-yy”格式的 String
解析为 Date
对象。问题是它试图猜测日期的世纪。
当从 01 到 31 指定时,年份被解释为 2000 年代(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 - 如何让 DateFormat 猜想世纪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10732297/