可能重复:
How do I compare a raw time in Java to now?
How do I compare a raw time in Java?
哪一天无关紧要 我必须知道目前是在上午10点之后还是之前。
答案 0 :(得分:4)
您可以使用:
Date yourDate = new Date();
GregorianCalendar calendar = new GregorianCalendar();
calendar.setTime(yourDate);
boolean before10AM = calendar.get(Calendar.HOUR_OF_DAY) < 10;
查看Calendar
的文档,了解更多可以使用它的内容(例如,您可以查看您的日期是否是星期五)。
在JDK的早期版本中,您可以使用Date.getHours()
,但现在不赞成使用Calendar
类。
答案 1 :(得分:3)
你走了:
Date date = new Date();
int hours = date.getHours();
if ( hours < 10) {
System.out.println("before 10 am");
} else {
System.out.println("after 10 am");
}
// if deprecated methods are an issue then
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int calHours = cal.get(Calendar.HOUR_OF_DAY);
if ( calHours < 10) {
System.out.println("before 10 am");
} else {
System.out.println("after 10 am");
}
使用joda-time库可以更加干净地完成整个过程。
答案 2 :(得分:1)
Calendar calendar = new GregorianCalendar();
calendar.setTime(yourDate);
Calendar calendar1 = new GregorianCalendar();
calendar1.set(Calendar.YEAR, calendar.get(Calendar.YEAR));
calendar1.set(Calendar.MONTH, calendar.get(Calendar.MONTH));
calendar1.set(Calendar.DATE, calendar.get(Calendar.DATE));
calendar1.set(Calendar.HOUR_OF_DAY, YOUR_HOUR);
calendar1.set(Calendar.MINUTE, YOUR_MINUTE);
calendar1.set(Calendar.SECOND, 0);
calendar1.set(Calendar.MILLISECOND, 0);
Date date = calendar1.getTime();
if (yourDate.after(date)) {
System.out.println("After");
}