/**
-
根据指定日期获取日期,获取当前日期月份第一天
-
@param date
-
@return
*/
public static Date getFirstDay(Date date) {
Instant instant = date.toInstant();
LocalDateTime dateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
LocalDateTime time = dateTime.withDayOfMonth(1);
//转换为date类型
ZonedDateTime zonedDateTime = time.atZone(ZoneId.systemDefault());
Instant instant2 = zonedDateTime.toInstant();
date = Date.from(instant2);return date;
}
/**
-
根据指定日期获取日期
-
当冲抵日期小于当前日期月份的第一天,返回冲抵日期月的最后一天
-
当冲抵日期等于当前日期月份的第一天,返回上个月最后一天
-
@param date
-
@return
*/
public Date getLastMonthdate(Date date){
Instant instant = date.toInstant();
LocalDateTime dateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
if(date.compareTo(getMonthdate()) < 0){
//获取当前日期最后一天
int lastDayOfMonth = dateTime.getMonth().length(true);
LocalDateTime lastTime = dateTime.withDayOfMonth(lastDayOfMonth);
//转换为date类型
ZonedDateTime zonedDateTime = lastTime.atZone(ZoneId.systemDefault());
Instant instant2 = zonedDateTime.toInstant();
date = Date.from(instant2);}else if(date.compareTo(getMonthdate()) == 0){
SimpleDateFormat sf=new SimpleDateFormat(“yyyy-MM-dd”);
//上个月最后一天
Calendar calendar=Calendar.getInstance();
int month=calendar.get(Calendar.MONTH);
calendar.set(Calendar.MONTH,month-1);
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
try {
date = sf.parse(sf.format(calendar.getTime()));
} catch (ParseException e) {
e.printStackTrace();
}
}
return date;
}
/**
- 获取当前月的第一天
- @return
*/
public Date getMonthdate(){
Date currentDate = new Date();
SimpleDateFormat sf=new SimpleDateFormat(“yyyy-MM-dd”);
Calendar calendar = Calendar.getInstance();
calendar.setTime(currentDate);
calendar.set(Calendar.DAY_OF_MONTH, 1);
System.out.println(“当前月的一天:”+sf.format(calendar.getTime()));
Date date = null;
try {
date = sf.parse(sf.format(calendar.getTime()));
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
/**
- 获取上个月的最后一天
- @return
*/
public Date getBeforeLastMonthdate(){
SimpleDateFormat sf=new SimpleDateFormat(“yyyy-MM-dd”);
Calendar calendar=Calendar.getInstance();
int month=calendar.get(Calendar.MONTH);
calendar.set(Calendar.MONTH, month-1);
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
System.out.println(“上个月最后一天:”+sf.format(calendar.getTime()));
Date date = null;
try {
date = sf.parse(sf.format(calendar.getTime()));
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
/**
- 获得上月第一天
- @return
*/
public Date getMonthStartDay() {
Calendar c = Calendar.getInstance();
c.add(Calendar.MONTH, -1);
c.set(c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.getActualMaximum(Calendar.DAY_OF_MONTH), 23, 59, 59);
SimpleDateFormat startSdf = new SimpleDateFormat(“yyyy-MM-01”);
System.out.println(“上个月第一天:”+startSdf.format(c.getTime()));
Date date = null;
try {
date = startSdf.parse(startSdf.format(c.getTime()));
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}