什么是Calendar?
Calendar
类是一个抽象类,它为特定瞬间与一组诸如 YEAR
、MONTH
、DAY_OF_MONTH
、HOUR
等 日历字段
之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。
该类还为实现包范围外的具体日历系统提供了其他字段和方法。这些字段和方法被定义为 protected
。
Calendar
提供了一个类方法 getInstance
,以获得此类型的一个通用的对象。Calendar
的 getInstance
方法返回一个 Calendar
对象,其日历字段已由当前日期和时间初始化:
Calendar calendar=Calendar.getInstance();
有以下方法:
获取24小时的方法
int hours=calendar.get(Calendar.HOUR_OF_DAY);
System.out.println(hours);
获取时的方法
int hour=calendar.get(Calendar.HOUR);
System.out.println(hour);
获取日期的方法
int date=calendar.get(Calendar.DATE);
System.out.println(date);
获取月份的方法
int month=calendar.get(Calendar.MONTH)+1;
System.out.println(month); // 西方 月份:0-11 东方 月份:1-12
获取年份的方法
int year=calendar.get(Calendar.YEAR);
System.out.println(year);
获取一个Calendar日历对象对应的Date日期对象
Date date=calendar.getTime(); //把日历对象转换成日期对象
System.out.println(date); //获取现在的时间
获取当前时间的地区
//timeZone时区 世界标准时间
//1
TimeZone timeZone=calendar.getTimeZone();
System.out.println(timeZone);
//2
TimeZone timeZone=TimeZone.getTimeZone("Asia/Shanghai"); //上海
System.out.println(timeZone);
//3
TimeZone timeZone=TimeZone.getTimeZone("Asia/Changqing"); //重庆
System.out.println(timeZone);
获取当前时间的毫秒值
Date date2=new Date();
long time =date2.getTime();
System.out.println("这是date获取的毫秒值"+time);
long time1=calendar.getTimeInMillis();
System.out.println("calender日历对应的毫秒值"+timeInMillis);
long time2=System.currentTimeMillis();
System.out.println("这是System系统获取的毫秒值"+timeMillis);
//加个System纳秒
long nano = System.nanoTime();
System.out.println("获取的纳秒"+nano);
把日期设置为5
calendar.set(Calendar.DATE,5);
//获取日期
int date=calendar.get(Calendar.DATE);
System.out.println("日期"+date);
把当前月份设置为5月
calendar.set(Calendar.MONTH,5);
//获取月份
int month=calendar.get(Calendar.MONTH);
System.out.println("月份"+month);
把当前年份设置为2025年
calendar.set(Calendar.YEAR,2050);
//获取年份
int year =calendar.get(Calendar.YEAR);
System.out.println("年份"+year);
//把当前的年份增加两年
calendar.add(Calendar.YEAR,2);
//把当前的月份减少3个月
calendar.add(Calendar.MONTH,-3);
//获取
int year1=calendar.get(Calendar.YEAR);
int month1=calendar.get(Calendar.MONTH);
int date1=calendar.get(Calendar.DATE);
System.out.println(year1+"年"+month1+"月"+date1+"日");