1.上个月开始和结束日期
/**
* 获取上个月最后一天
* @return
*/
private Date getLastMonthEndDate(){
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date() );
calendar.add(Calendar.MONTH, -1);
//getActualMaximum 最后一天 | getActualMinimum 开始一天
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
//calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMinimum(Calendar.DAY_OF_MONTH));
calendar.set(Calendar.HOUR_OF_DAY, 23);
calendar.set(Calendar.MINUTE, 59);
calendar.set(Calendar.SECOND, 59);
return calendar.getTime();
}
2.获取今年第一天
private Date getDate(){
Calendar calendar = Calendar.getInstance();
Calendar currCal = Calendar.getInstance();
calendar.clear();
calendar.set(Calendar.YEAR, currCal.get(Calendar.YEAR));
return calendar.getTime();
}
3.获取现在到今晚0点的秒数
/**
* 当前时间到24时的秒数
*/
public static Integer getRemainSecondsOneDay(Date currentDate) {
//使用plusDays加传入的时间加1天,将时分秒设置成0
LocalDateTime midnight = LocalDateTime.ofInstant(currentDate.toInstant(),
ZoneId.systemDefault()).plusDays(1).withHour(0).withMinute(0)
.withSecond(0).withNano(0);
LocalDateTime currentDateTime = LocalDateTime.ofInstant(currentDate.toInstant(),
ZoneId.systemDefault());
//使用ChronoUnit.SECONDS.between方法,传入两个LocalDateTime对象即可得到相差的秒数
long seconds = ChronoUnit.SECONDS.between(currentDateTime, midnight);
return (int) seconds;
}