Calendar 获取日期
/***
* 获取 日期所在 年
*
* */
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();
}
public static void main(String[] args) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date firstDateOfMonth = getFirstDateOfMonth(new Date());
Date endDayOfMonth = getEndDayOfMonth(new Date());
Date firstDayOfNext = getFirstDayOfNext(new Date());
int year = getYear(new Date());
int month = getMonth(new Date());
int day = getDay(new Date());
System.out.println("获取某一时间 所在 月份 的第一天 :" + sdf.format(firstDateOfMonth));
System.out.println("获取某一时间 所在 月份 的最后一天 :" + sdf.format(endDayOfMonth));
System.out.println("获取某一时间 所在 月份 下个月的第一天 :" + sdf.format(firstDayOfNext));
System.out.println("获取某一时间 所在 年份 :" + year);
System.out.println("获取某一时间 所在 月份 :" + month);
System.out.println("获取某一时间 所在 当天 :" + day);
}
输出结果:
获取某一时间 所在 月份 的第一天 :2022-03-01
获取某一时间 所在 月份 的最后一天 :2022-03-31
获取某一时间 所在 月份 下个月的第一天 :2022-04-01
获取某一时间 所在 年份 :2022
获取某一时间 所在 月份 :3
获取某一时间 所在 当天 :7