Time
获取零点
获取某天的零点时间戳
public static Long getZeroDate (Long time) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date(time));
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
return calendar.getTime().getTime();
}
}
long millsec = LocalDateTime.now().withHour(0).withMinute(0).withSecond(0).withNano(0)
.toEpochSecond(ZoneOffset.ofHours(8)) * 1000;
获取几月前1号0点的时间戳
public static Long getMonthBegin(Long dateTimeMillis,int monthago){
Calendar c = Calendar.getInstance();
c.setTime(new Date(dateTimeMillis));
Date date = new Date(dateTimeMillis);
date.setDate(1);
date.setHours(0);
date.setMinutes(0);
date.setSeconds(0);
if(date.getMonth() - 1 <= 0){
date.setYear(date.getYear() - 1);
date.setMonth(12);
}else {
date.setMonth(date.getMonth() - monthago);
}
return date.getTime();
}
public static Long getMonthBegin(Long dateTimeMillis) {
Calendar c = Calendar.getInstance();
c.setTime(new Date(dateTimeMillis));
c.set(Calendar.DAY_OF_MONTH, 1);
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND,0);
c.set(Calendar.MILLISECOND, 0);
return c.getTimeInMillis() / 1000;
}
获取几天前的0点的日期
public static Long subDate (int num) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.add(Calendar.DATE, -num);
return calendar.getTime().getTime();
}
获取相应天前的日期yyyyMMdd
public static String subDateString (int num) {
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DATE, -num);
Date date = calendar.getTime();
return format.format(date);
}
获取指定时间戳所在月份15号的时间戳/秒
public static Long getMonthMiddle(Long dateTimeMillis) {
Calendar c = Calendar.getInstance();
c.setTime(new Date(dateTimeMillis));
c.set(Calendar.DAY_OF_MONTH, 15);
c.set(Calendar.HOUR_OF_DAY, 23);
c.set(Calendar.MINUTE, 59);
c.set(Calendar.SECOND,59);
c.set(Calendar.MILLISECOND, 999);
return c.getTimeInMillis() / 1000;
}
获取指定时间戳所在月份结束的时间戳/秒
public static Long getMonthEnd(Long dateTimeMillis) {
Calendar c = Calendar.getInstance();
c.setTime(new Date(dateTimeMillis));
c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH));
c.set(Calendar.HOUR_OF_DAY, 23);
c.set(Calendar.MINUTE, 59);
c.set(Calendar.SECOND,59);
c.set(Calendar.MILLISECOND, 999);
return c.getTimeInMillis() / 1000;
}
测试Calendar
public class