Calendar add方法和set方法:
set(int field ,int value):
- 用来设置“年/月/日/小时/分钟/秒/微妙”等值。
add(int field,int amount):
- add可以对Calendar的字段进行计算。如果需要减去值,可以使用负数。
实例:获取当前日期的前一天的18:00整,和当前日期的18:00整
/**
* 获取开始时间
* @param date : 当前日期
* @return 前一天的18:00
*/
public Date getStartTime(Date date){
if (date == null){
return null;
}
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
//此处要用add()方法,获取当前日期的前一天
calendar.add(Calendar.DATE,-1);
//此处用HOUR_OF_DAY,24小时制
calendar.set(Calendar.HOUR_OF_DAY,18);
//按顺序设置时分秒
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
return calendar.getTime();
}
/**
* 获取结束时间
* @param date : 当前时间
* @return : 当天18:00
*/
public Date getEndTime(Date date){
if (date == null) {
return null;
}
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.HOUR_OF_DAY, 18);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
return calendar.getTime();
}
//获取开始和结束时间
public getStartAndEndTime(){
Date date = new Date();
//获取开始时间
Date startTime = getStartTime(date);
//获取结束时间
Date endTime = getEndTime(date);
//do someting.....
}