需求是在每天凌晨0点50分到5点执行某个任务
方法一:使用DateTime.withTime()方法
//步骤:导入这个日期类,获取当前时间,再获取当天时间的0点50分和5点,判断是否在这个时间范围。
import org.joda.time.DateTime;
//在每天凌晨0点50分到5点执行
DateTime dateTimeNow = DateTime.now();
DateTime dateTimeStart = dateTimeNow .withTime(0, 50, 0, 0);
DateTime dateTimeEnd = dateTimeNow .withTime(5, 0, 0, 0);
if(dateTimeStart .compareTo(dateTimeNow )<=0 && dateTimeEnd .compareTo(dateTimeNow )>=0){
//执行
}
方法二:使用SimpleDateFormat
//在每天凌晨0点50分到5点执行
Date now = new Date();
String formatNow = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(now);
String formatStart = new SimpleDateFormat("yyyy-MM-dd 00:50:00").format(now);
String formatEnd = new SimpleDateFormat("yyyy-MM-dd 12:00:00").format(now);
if(formatStart .compareTo(formatNow)<=0 && formatEnd .compareTo(formatNow)>=0){
//执行
}
方法三:使用Calendar
//在每天凌晨0点50分到5点执行
Calendar calendarStart = Calendar.getInstance();
calendarStart .set(Calendar.SECOND, 0);
calendarStart .set(Calendar.MINUTE, 50);
calendarStart .set(Calendar.HOUR_OF_DAY, 0);
calendarStart .set(Calendar.MILLISECOND, 0);
Calendar calendarEnd = Calendar.getInstance();
calendarEnd .set(Calendar.SECOND, 0);
calendarEnd .set(Calendar.MINUTE, 00);
calendarEnd .set(Calendar.HOUR_OF_DAY, 5);
calendarEnd .set(Calendar.MILLISECOND, 0);
Calendar now = Calendar.getInstance();
if(calendarStart .compareTo(now)<=0 && calendarEnd .compareTo(now)>=0){
//执行
}