首先随便定义一个时间:Date time = new Date();
一.根据特定日期获取当日的开始时间与结束时间
1.获取当日的开始时间
public Date getDayBegin(Date time) {
Calendar cal = Calendar.getInstance();
cal.setTime(time);
//把小时置为0
cal.set(Calendar.HOUR_OF_DAY, 0);
//把分钟置为0
cal.set(Calendar.MINUTE, 0);
//把秒置为0
cal.set(Calendar.SECOND, 0);
//把毫秒置为0
cal.set(Calendar.MILLISECOND, 0);
return cal.getTime();
}
2.获取当日的结束时间
public Date getDayEnd(Date time) {
Calendar cal = Calendar.getInstance();
cal.setTime(time);
//把小时置为23
cal.set(Calendar.HOUR_OF_DAY, 23);
//把分钟置为59
cal.set(Calendar.MINUTE, 59);
//把秒置为59
cal.set(Calendar.SECOND, 59);
//把毫秒置为999
cal.set(Calendar.MILLISECOND, 999);
return cal.getTime();
}
二.根据特定日期获取当月的开始时间与结束时间
1.获取当月的开始时间
public Date getMonthBegin(Date time) {
Calendar cal = Calendar.getInstance();
cal.setTime(time);
//设置为1号,当前日期既为本月第一天
cal.set(Calendar.DAY_OF_MONTH, 1);
//将小时置为0
cal.set(Calendar.HOUR_OF_DAY, 0);
//将分钟置为0
cal.set(Calendar.MINUTE, 0);
//将秒置为0
cal.set(Calendar.SECOND,0);
//将毫秒置为0
cal.set(Calendar.MILLISECOND, 0);
return cal.getTime();
}
2.获取当月的结束时间
public Date getMonthEnd(Date time) {
Calendar cal = Calendar.getInstance();
cal.setTime(time);
//设置为当月最后一天
cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
//将小时置为23
cal.set(Calendar.HOUR_OF_DAY, 23);
//将分钟置为59
cal.set(Calendar.MINUTE, 59);
//将秒置为59
cal.set(Calendar.SECOND,59);
//将毫秒置为999
cal.set(Calendar.MILLISECOND, 999);
return cal.getTime();
}
三.根据特定日期获取当年的开始时间与结束时间
1.获取当年的开始时间
public Date getYearBegin(Date time) {
Calendar cal = Calendar.getInstance();
cal.setTime(time);
//设置月和日都为1,即为开始时间(注:月份是从0开始;日中0表示上个月最后一天,1表示本月开始第一天)
cal.set(Calendar.MONTH, 0);
cal.set(Calendar.DAY_OF_MONTH, 1);
//将小时置为0
cal.set(Calendar.HOUR_OF_DAY, 0);
//将分钟置为0
cal.set(Calendar.MINUTE, 0);
//将秒置为0
cal.set(Calendar.SECOND,0);
//将毫秒置为0
cal.set(Calendar.MILLISECOND, 0);
return cal.getTime();
}
2.获取当年的结束时间
public Date getYearEnd(Date time) {
Calendar cal = Calendar.getInstance();
cal.setTime(time);
//设置月为12,月份从0开始
cal.set(Calendar.MONTH, 11);
//设置为当月最后一天
cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
//将小时置为23
cal.set(Calendar.HOUR_OF_DAY, 23);
//将分钟置为59
cal.set(Calendar.MINUTE, 59);
//将秒置为59
cal.set(Calendar.SECOND,59);
//将毫秒置为999
cal.set(Calendar.MILLISECOND, 999);
return cal.getTime();
}