Java Calendar详解 - 创建、获取、转换、日期加减

时间:2025-01-26 16:46:30

创建

Java月份是从0-11,月份设置时要减1

// 使用当前时间创建
Calendar calendar = ();
// 设置指定日期,月份需要减一
(year, month - 1, day);
// 指定时间创建,参数依次为:年,月,日,时,分,秒,月份需要减一
Calendar calendar = new GregorianCalendar(2016, 8, 1, 15, 41, 22);
// Date转换为Calendar 
Calendar calendar = ();
(date);

获取

获取年、月、日、时、分、秒、星期

Calendar calendar = ();
int year = ();
// 取月份要加1
int month = () + 1;
int day = (Calendar.DAY_OF_MONTH);
int hover = (Calendar.HOUR_OF_DAY);
int minute = ();
int seconds = ();
// 1-7分别代表 -- 星期日,星期一,星期二,星期三,星期四,星期五,星期六
int week = (calendar.DAY_OF_WEEK);

获取当前月份的最大天数

().getActualMaximum(Calendar.DAY_OF_MONTH);

操作

Calendar 转换为Date

Date date = ().getTime();

日期加减

public class TestCalendar {
    // 使用默认时区和语言环境获得一个日历。
    private static Calendar calendar = ();
    public static void print(String name) {
        (name + ": ");
        (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(()));
    }
    public static void main(String[] args) {
        print("当前时间   ");
        (Calendar.HOUR_OF_DAY, 1);
        print("增加1小时");
        (Calendar.DAY_OF_MONTH, 1);
        print("增加1天    ");
        (, 1);
        print("增加1个月");
        (, 1);
        print("增加1年    ");
        (, -2);
        print("减少2年    ");
    }
}

两个日期相差天数

long millisOfDay = 24 * 60 * 60 * 1000;
Calendar calendar = new GregorianCalendar(2015, 9, 1);
Calendar calendar1 = new GregorianCalendar(2016, 9, 1);
Calendar calendar2 = new GregorianCalendar(2017, 9, 1);
// 2016年是闰年,得到366天
((() - ()) / millisOfDay);
// 2017年是平年,得到365天
((() - ()) / millisOfDay);

Calendar获取年、月、日、时间

Calendar c = (("GMT+08:00"));    //获取东八区时间
 
        //获取年
        int year = ();
        //获取月份,0表示1月份
        int month = () + 1;
        //获取当前天数
        int day = (Calendar.DAY_OF_MONTH);
        //获取本月最小天数
        int first = (Calendar.DAY_OF_MONTH);
        //获取本月最大天数
        int last = (Calendar.DAY_OF_MONTH);
        //获取当前小时
        int time = (Calendar.HOUR_OF_DAY);
        //获取当前分钟
        int min = ();
        //获取当前秒
        int sec = ();                                                     
 
        SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 
        String curDate = (());                                      //当前日期
        ("当前时间:" + year + "-" + month + "-" + day + " " + time + ":" + min + ":" + sec);
        ("第一天和最后天:" + first +"," + last);
        ("当前日期:" + curDate);