java 获取时间问题
程序员文章站
2022-05-12 16:34:33
...
/***
* 获取当前时间的下个月
* @param dateStr 时间 202012
* @param format 时间格式 yyyyMM
* @return 202101
*/
public static String getFirstDayOfNextMonth(String dateStr,String format){
SimpleDateFormat sdf = new SimpleDateFormat(format);
try {
Date date = sdf.parse(dateStr);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.DAY_OF_MONTH,1);
calendar.add(Calendar.MONTH, 1);
return sdf.format(calendar.getTime());
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
//传过来的时间(202007)的最后一天
public static String getLastDayOfMonth(String yearMonth) {
int year = Integer.parseInt(yearMonth.substring(0, 4)); //年
int month = Integer.parseInt(yearMonth.substring(4, 6)); //月
Calendar cal = Calendar.getInstance();
// 设置年份
cal.set(Calendar.YEAR, year);
// 设置月份
// cal.set(Calendar.MONTH, month - 1);
cal.set(Calendar.MONTH, month); //设置当前月的上一个月
// 获取某月最大天数
//int lastDay = cal.getActualMaximum(Calendar.DATE);
int lastDay = cal.getMinimum(Calendar.DATE); //获取月份中的最小值,即第一天
// 设置日历中月份的最大天数
//cal.set(Calendar.DAY_OF_MONTH, lastDay);
cal.set(Calendar.DAY_OF_MONTH, lastDay - 1); //上月的第一天减去1就是当月的最后一天
// 格式化日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
return sdf.format(cal.getTime());
}
**
当前时间的上一个月
**
public static String getMeetMonth() {
SimpleDateFormat f = new SimpleDateFormat(“yyyyMM”);
//2、获取当前日期 方式二
Calendar c = Calendar.getInstance();
//3、获取当前日期增加1个月前的日期,
c.add(Calendar.MONTH, -1);
String format = f.format(c.getTime());
return format;
}
//当前时间的下一个月
public static String getOuttMonth() {
SimpleDateFormat f = new SimpleDateFormat("yyyyMM");
//2、获取当前日期 方式二
Calendar c = Calendar.getInstance();
//3、获取当前日期增加1个月前的日期,
c.add(Calendar.MONTH, 1);
String format = f.format(c.getTime());
return format;
}