Date日期类中的getMonth()与getYear()提示过时警告,这里的警告是方法过时,不建议使用
解决方法1:使用Calendar类
SimpleDateFormat ft = new SimpleDateFormat("yyyyMMdd");
Calendar calender = Calendar.getInstance();
Date date = new Date();
calender.setTime(date);
System.out.println(ft.format(calender.getTime()));
System.out.println(calender.get(Calendar.YEAR));
System.out.println(calender.get(Calendar.MONTH)+1);//获取月份是,会比数据中的月份少1,需要进行加 1
System.out.println(calender.get(Calendar.DATE));
输出:
2023-11-02
2023
11
2
其他方法
/***
* 获取 日期所在 年
*
* */
public static int getYear(Date date){
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(Calendar.YEAR);
}
/***
* 获取 日期所在 月
*
* */
public static int getMonth(Date date){
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(Calendar.MONTH) + 1;
}
/***
* 获取 日期 当前天数日
*
* */
public static int getDay(Date date){
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(Calendar.DAY_OF_MONTH) ;
}
/***
* 获取某一时间 所在 月份 的第一天
* 比如 : 2020-01-20
* 结果为: 2020-01-01 00:00:00
* */
public static Date getFirstDateOfMonth(Date date) {
Calendar firstDate = Calendar.getInstance();
firstDate.setTime(date);
final int last = firstDate.getActualMinimum(Calendar.DAY_OF_MONTH);
firstDate.set(Calendar.DAY_OF_MONTH, last);
//当前日期 的 月份的 第一天)
return firstDate.getTime();
}
/***
* 获取某一时间 所在 月份 的最后一天
* 比如 : 2020-01-20
* 结果为: 2020-01-31 00:00:00
* */
public static Date getEndDayOfMonth(Date date){
Calendar lastDateMonth = Calendar.getInstance();
lastDateMonth.setTime(date );
final int lastDay = lastDateMonth.getActualMaximum(Calendar.DAY_OF_MONTH);
lastDateMonth.set(Calendar.DAY_OF_MONTH, lastDay);
//当前日期 的月份的最后一天
return lastDateMonth.getTime();
}
/***
* 获取某一时间 所在 月份 下个月的第一天
* 比如 : 2020-01-20
* 结果为:2020-02-01 00:00:00
* */
public static Date getFirstDayOfNext(Date date){
Calendar nextMonthFirst = Calendar.getInstance();
nextMonthFirst.setTime(date);
nextMonthFirst.set(Calendar.DAY_OF_MONTH, 1);
nextMonthFirst.add(Calendar.MONTH, 1);
return nextMonthFirst.getTime();
}
解决方法2:使用Date类截取
SimpleDateFormat year = new SimpleDateFormat("yyyy");
SimpleDateFormat mm = new SimpleDateFormat("MM");
Calendar calender = Calendar.getInstance();
Date date = new Date();
System.out.println(yyyy.format(date));
System.out.println(mm.format(date));
输出:
2023-06-02
2023
06
如果用月份的话,直接就是06, 并不是6;不用再加格式 s%