首先,您需要将字符串解析为Date
对象实例。您可以使用DateFormat
派生类来执行此操作(即SimpleDateFormat
)。
然后,您可以使用两个日期的毫秒表示(通过 获得getTime()
)进行比较,或者仅使用 或 比较after(Date date)
它们before(Date date)
。
如果您需要更复杂的操作,您应该使用Calendar
该类。
此外,如果您的项目在日期方面很有效,我建议您使用Joda Time
编辑(回应评论):
使用Calendar
类就是这样。首先,您需要一个 7:00 日期的日历实例:
Calendar cal1 = Calendar.getInstance();
cal1.set(Calendar.DATE, 12); // The day of month you are working with
cal1.set(Calendar.MONTH, 7); // The month of the year
cal1.set(Calendar.YEAR, 2012); // The year
cal1.set(Calendar.HOUR_OF_DAY, 7); // Hour in 24-hours fashion
cal1.set(Calendar.MINUTE, 0); // self-explanatory
cal1.set(Calendar.SECOND, 0);
Date shiftStart = cal1.getTime();
然后在班次结束时做同样的事情:
Calendar cal2 = Calendar.getInstance();
cal2.set( ... ); // Repeat almost every field from previous snippet
cal2.set(Calendar.HOUR_OF_DAY, 15); // Hour in 24-hours fashion
Date shiftEnd = cal2.getTime();
然后,您只需要检查要比较的日期是否在这些日期之间:
Date myDate = ... // the date you want to compare
boolean checkShift = myDate.after(shiftStart) && myDate.before(shiftEnd);
无论如何,正如我已经说过的,如果您在项目中经常使用日期,我会使用 Joda Time,因为它可以简化很多日期处理。