/**
* @descrition: 获取当天00:00
* @param date :
* @return : java.util.Date
*/
public static Date getFirstTimeOfDay(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
return calendar.getTime();
}
/**
* @descrition: 获取当天23:59
* @param date :
* @return : java.util.Date
*/
public static Date getLastTimeOfDay(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.HOUR_OF_DAY, 23);
calendar.set(Calendar.MINUTE, 59);
calendar.set(Calendar.SECOND, 59);
calendar.set(Calendar.MILLISECOND, 999);
return calendar.getTime();
}
/**
* 不比较日期,只比较时间
*/
@SuppressWarnings("all")
public static int compareTimeNoDate(Date date1, Date date2){
long d1 = date1.getHours()*3600 + date1.getMinutes()*60 + date1.getSeconds();
long d2 = date2.getHours()*3600 + date2.getMinutes()*60 + date2.getSeconds();
if (d1>d2){
return 1;
}else if (d1 == d2){
return 0;
}else {
return -1;
}
}
/**
* 返回日期列表,包含起始时期与结束日期,时分秒毫秒都为0
*/
public static List<Date> getDateList(Date start1, Date end1){
Date start = getFirstTimeOfDay(start1);
Date end = getLastTimeOfDay(end1);
List<Date> list = new ArrayList<>();
if (start.getDate() == end.getDate()){
list.add(start);
return list;
}
Calendar calendar = Calendar.getInstance();
calendar.setTime(start);
while (calendar.getTime().before(end)){
list.add(getFirstTimeOfDay(calendar.getTime()));
calendar.add(Calendar.DAY_OF_MONTH, 1);
}
return list;
}
/**
* 将一个日期列表的时间转化为 00:00:00.0
*/
public static List<Date> clearDateListTime(List<Date> list){
List<Date> dates = new ArrayList<>();
for (Date date : list) {
dates.add(getFirstTimeOfDay(date));
}
return dates;
}
/**
* 获取第二天的0点
*/
public static Date getTomorrow(){
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_MONTH, 1);
return getFirstTimeOfDay(calendar.getTime());
}