你应该去Calendar
上课。您可以使用以下结构:
Calendar cal = Calendar.getInstance();
cal.setTime(startDate);
cal.add(Calendar.DAY_OF_YEAR, 1);
它还具有检查您startDate
的日期before()
或after()
新日期(使用当前时间)的方法。
在编写内置的 Java 日期/时间结构时,如果我没有插入Joda Time,我会失职,许多人认为它优于本地 Java 实现。
编辑:
显示该过程的示例会更有效Date.compareTo()
,因为需要Calendar.before()
与Calendar.after()
其他Calendar
对象进行比较,这可能会很昂贵。
看看以下内容:
DateFormat df = DateFormat.getInstance();
Date startDate = df.parse("07/28/12 01:00 AM, PST");
Calendar cal = Calendar.getInstance();
cal.setTime(startDate);
Date now = new Date();
if (startDate.compareTo(now)< 0) {
System.out.println("start date: " + startDate + " is before " + now);
Calendar nowCal = Calendar.getInstance();
nowCal.add(Calendar.DAY_OF_YEAR,1);
cal.set(Calendar.DAY_OF_YEAR, nowCal.get(Calendar.DAY_OF_YEAR));
} else if (startDate.compareTo(now) == 0) {
System.out.println("startDate: " +startDate + " is equal to " + now);
} else {
System.out.println("startDate: " + cal + " is after " + now);
}
System.out.println(cal.getTime());