/***
* 当前日期所在月的起始时间
* @return
*/
public static Instant getOneDayOfMonth(){
LocalDate date = LocalDate.now();
LocalDate with = date.with(TemporalAdjusters.firstDayOfMonth());
return LocalDateTime.of(with,LocalTime.MIN).atZone(ZoneId.systemDefault()).toInstant();
}
/***
* 当前日期n月后的时间
* @return
*/
public static Instant getAfterMonth(Instant time,int i){
LocalDate date = LocalDate.ofInstant(time, ZoneId.systemDefault()).plusMonths(i);
LocalDate with = date.with(TemporalAdjusters.firstDayOfMonth());
return LocalDateTime.of(with,LocalTime.MIN).atZone(ZoneId.systemDefault()).toInstant();
}
/***
* 当前日期n月后的时间
* @return
*/
public static LocalDate timeFormat(Instant time){
return LocalDate.ofInstant(time, ZoneId.systemDefault());
}
/***
* 当前日期所在月的结束时间
* @return
*/
public static Instant getTowDayOfMonth(Instant startTime){
LocalDate date = LocalDate.ofInstant(startTime, ZoneId.systemDefault());
return LocalDateTime.of(date.with(TemporalAdjusters.lastDayOfMonth()),LocalTime.MAX).atZone(ZoneId.systemDefault()).toInstant();
}
/***
* 两个日期之间包含月数
* @return
*/
public static int getMonths(Instant startTime, Instant endTime) {
return Period.between(LocalDate.ofInstant(startTime, ZoneId.systemDefault()),
LocalDate.ofInstant(endTime, ZoneId.systemDefault())).getMonths() + 1;
}