1. 获取指定月有几天
下面的这种方式可以快速的让我们获取到指定的某个月有几天。
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM");
Calendar calendar = Calendar.getInstance();
calendar.setTime(format.parse("2021-02"));
int totalDayOfMonth = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
System.out.println(totalDayOfMonth); // 28
2. 获取本月是本年第几个月
Calendar calendar = Calendar.getInstance();
// 月份为 0-11,所以得出月份+1就是本月
int curMonth = calendar.get(Calendar.MONTH) + 1;
3. 获取上一年、今年、下一年
// 获取上一年
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.YEAR, -1);
SimpleDateFormat format = new SimpleDateFormat("yyyy");
String lastYear = format.format(calendar.getTime());
// 获取今年
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.YEAR, 0);
SimpleDateFormat format = new SimpleDateFormat("yyyy");
String curYear = format.format(calendar.getTime());
// 获取下一年
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.YEAR, 1);
SimpleDateFormat format = new SimpleDateFormat("yyyy");
String nextYear = format.format(calendar.getTime());
4. 获取上月最后一天
// 获取上月最后一天
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_MONTH, 0);
SimpleDateFormat month1 = new SimpleDateFormat("yyyy-MM-dd");
String lastDay = month1.format(calendar.getTime());
5.获取上季度
// 获取本月是本年的第几个月
int curMonth = calendar.get(Calendar.MONTH) + 1;
int quarterNum;
if (curMonth < 4) {
quarterNum = 1;
} else if (curMonth <7) {
quarterNum = 2;
} else if (curMonth < 10) {
quarterNum = 3;
} else {
quarterNum = 4;
}
// 如果是 1季度,那么取上年的 4季度
if (quarterNum == 1) {
calendar.add(Calendar.YEAR, -1);
String year = String.valueOf(calendar.get(Calendar.YEAR));
String quarter = "4";
} else {
String year = String.valueOf(calendar.get(Calendar.YEAR));
String quarter = String.valueOf(quarterNum-1);
}
6.获取今天0点时间戳
GregorianCalendar gc = new GregorianCalendar();
GregorianCalendar date = new GregorianCalendar(gc.get(Calendar.YEAR),
gc.get(Calendar.MONTH), gc.get(Calendar.DAY_OF_MONTH));
System.out.println(date.getTimeInMillis());