正如 cmets 中所指出的,输入很可能以字符串形式出现。您可以像这样轻松地从字符串中解析Date:
private static Date getDate(String dateStr) throws ParseException {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("ddMMyyyy");
return simpleDateFormat.parse(dateStr);
}
然后你可以做这样的事情来检查哪个日期更早:
String date1 = "22092021";
String date2 = "03122021";
Date d1 = getDate(date1);
Date d2 = getDate(date2);
if (d1.compareTo(d2) < 0) {
System.out.println("d1 is older than d2");
} else if (d1.compareTo(d2) > 0) {
System.out.println("d2 is older than d1");
} else {
System.out.println("both are equal");
}
如果您有兴趣从 Date 实例中提取日、月和年,您可以创建一个小型实用程序方法将其转换为 Calendar,如下所示:
private static Calendar toCalendar(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
return cal;
}
然后你可以用Calendar::get这样的方法提取它:
Calendar c1 = toCalendar(d1);
System.out.printf("%d %d %d\n", c1.get(Calendar.DAY_OF_MONTH), c1.get(Calendar.MONTH), c1.get(Calendar.YEAR));
Calendar c2 = toCalendar(d2);
System.out.printf("%d %d %d\n", c2.get(Calendar.DAY_OF_MONTH), c2.get(Calendar.MONTH), c2.get(Calendar.YEAR));