文章目录
Calendar 静态属性
属性 | 详细描述 |
---|---|
Calendar.YEAR | 年份 |
Calendar.MONTH | 月份(从0开始,0代表一月) |
Calendar.DATE | 日期 |
Calendar.DAY_OF_MONTH | 一月中的第几天 |
Calendar.DAY_OF_WEEK | 一周中的第几天 |
Calendar.DAY_OF_YEAR | 一年中的第几天 |
Calendar.HOUR | 十二小时制的小时 |
Calendar.HOUR_OF_DAY | 二十四小时制的小时 |
Calendar.MINUTE | 分 |
Calendar.SECOND | 秒 |
Calendar.MILLISECOND | 毫秒 |
获取去年开始时间【时间格式:yyyy-MM-dd HH:mm:ss】
private static final String DEFAULT_DATE_TIME = "yyyy-MM-dd HH:mm:ss";
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.YEAR, -1);
cal.set(Calendar.DAY_OF_YEAR, 1);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
System.out.println(format(cal));
}
private static String format(Calendar cal) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(DEFAULT_DATE_TIME);
return simpleDateFormat.format(cal.getTime());
}
输出结果:2021-01-01 00:00:00
获取去年结束时间【时间格式:yyyy-MM-dd HH:mm:ss】
private static final String DEFAULT_DATE_TIME = "yyyy-MM-dd HH:mm:ss";
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.YEAR, -1);
cal.set(Calendar.MONTH, Calendar.DECEMBER);
cal.set(Calendar.DATE, 31);
cal.set(Calendar.HOUR_OF_DAY, 23);
cal.set(Calendar.MINUTE, 59);
cal.set(Calendar.SECOND, 59);
cal.set(Calendar.MILLISECOND, 999);
System.out.println(format(cal));
}
private static String format(Calendar cal) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(DEFAULT_DATE_TIME);
return simpleDateFormat.format(cal.getTime());
}
输出结果:2021-12-31 23:59:59
获取今年开始时间【时间格式:yyyy-MM-dd HH:mm:ss】
private static final String DEFAULT_DATE_TIME = "yyyy-MM-dd HH:mm:ss";
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_YEAR, 1);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
System.out.println(format(cal));
}
private static String format(Calendar cal) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(DEFAULT_DATE_TIME);
return simpleDateFormat.format(cal.getTime());
}
输出结果:2022-01-01 00:00:00
获取今年结束时间【时间格式:yyyy-MM-dd HH:mm:ss】
private static final String DEFAULT_DATE_TIME = "yyyy-MM-dd HH:mm:ss";
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.MONTH, Calendar.DECEMBER);
cal.set(Calendar.DATE, 31);
cal.set(Calendar.HOUR_OF_DAY, 23);
cal.set(Calendar.MINUTE, 59);
cal.set(Calendar.SECOND, 59);
cal.set(Calendar.MILLISECOND, 999);
System.out.println(format(cal));
}
private static String format(Calendar cal) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(DEFAULT_DATE_TIME);
return simpleDateFormat.format(cal.getTime());
}
输出结果:2022-12-31 23:59:59
Calendar工具类
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Objects;
public class DateUtil {
private static final String DEFAULT_DATE_TIME = "yyyy-MM-dd HH:mm:ss";
private static final String DEFAULT_YEAR = "yyyy";
/**
* 获取今年年份
* 【时间格式:yyyy】
*
* @return
*/
public static String currentYear() {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.YEAR, 0);
return Common.calendarToStr(cal, DEFAULT_YEAR);
}
/**
* 获取今年开始时间
* 【时间格式:yyyy-MM-dd HH:mm:ss】
*
* @return
*/
public static String currentYearStartDateTime() {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.YEAR, 0);
cal.add(Calendar.DATE, 1);
cal.add(Calendar.MONTH, 0);
cal.set(Calendar.DAY_OF_YEAR, 1);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
return Common.calendarToStr(cal, Common.DEFAULT_DATETIME_FORMAT);
}
/**
* 获取今年结束时间
* 【时间格式:yyyy-MM-dd HH:mm:ss】
*
* @return
*/
public static String currentYearEndDateTime() {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.YEAR, 0);
cal.set(Calendar.MONTH, Calendar.DECEMBER);
cal.set(Calendar.DATE, 31);
cal.set(Calendar.HOUR_OF_DAY, 23);
cal.set(Calendar.MINUTE, 59);
cal.set(Calendar.SECOND, 59);
cal.set(Calendar.MILLISECOND, 999);
cal.roll(Calendar.DAY_OF_YEAR, 0);
return Common.calendarToStr(cal, Common.DEFAULT_DATETIME_FORMAT);
}
/**
* 获取去年年份
* 【时间格式:yyyy】
*
* @return
*/
public static String lastYear() {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.YEAR, -1);
return Common.calendarToStr(cal, DEFAULT_YEAR);
}
/**
* 获取去年开始时间
* 【时间格式:yyyy-MM-dd HH:mm:ss】
*
* @return
*/
public static String lastYearStartDateTime() {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.YEAR, -1);
cal.add(Calendar.DATE, 1);
cal.add(Calendar.MONTH, 0);
cal.set(Calendar.DAY_OF_YEAR, 1);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
return Common.calendarToStr(cal, Common.DEFAULT_DATETIME_FORMAT);
}
/**
* 获取去年结束时间
* 【时间格式:yyyy-MM-dd HH:mm:ss】
*
* @return
*/
public static String lastYearEndDateTime() {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.YEAR, -1);
cal.set(Calendar.MONTH, Calendar.DECEMBER);
cal.set(Calendar.DATE, 31);
cal.set(Calendar.HOUR_OF_DAY, 23);
cal.set(Calendar.MINUTE, 59);
cal.set(Calendar.SECOND, 59);
cal.set(Calendar.MILLISECOND, 999);
cal.roll(Calendar.DAY_OF_YEAR, 0);
return Common.calendarToStr(cal, Common.DEFAULT_DATETIME_FORMAT);
}
public static String format(Calendar cal) {
return format(cal, null);
}
public static String format(Calendar cal, String format) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format == null ? DEFAULT_DATE_TIME : format);
return simpleDateFormat.format(cal.getTime());
}
}