Calendar类
java.until.Calendar日历类
定义
Calendar本身是一个抽象类,定义日历类操作时间的相关方法,其提供了一个静态方法getInstance(),可以根据系统所在地区获取一个适用的实现类,大部分地区获取的是CregorianCalenda.
实例
public static void main(String[] args){
//日历默认(也表示当前系统时间)
Calendar calendar = Calendar.getInstance();
System.out.println(calendar);
/*
*Calendar可以提供Date之间的相互转换
*Calendar提供方法,Date getTime();
*该方法可以将当前Calendar所表示的日期以Date形式返回
*/
Date date = calendar.getTime();
System.out.println(date);
/*
*Date转换为Calendar
*Calendar提供了方法:void setTime(Date date)
*使用当前Calendar表示给定的Date所表示的日期
*/
calendar.setTime(date);
System.out.println(calendar);
}
运行结果
##Calendar_set
Calendar calendar = Calendar.getInstance();
System.out.println(calendar.getTime());
//2008-08-08 20:08:08
//设置年份
calendar.set(Calendar.YEAR,2008);
System.out.println(calendar.get(Calendar.YEAR));
//设置月份
calendar.set(Calendar.MONTH,8);
System.out.println(calendar.get(Calendar.MONTH));
//设置时
calendar.set(Calendar.HOUR_OF_DAY,8);
System.out.println(calendar.get(Calendar.HOUR_OF_DAY));
//设置分
calendar.set(Calendar.MINUTE,8);
System.out.println(calendar.get(Calendar.MINUTE));
//设置秒
calendar.set(Calendar.SECOND,8);
System.out.println(calendar.get(Calendar.SECOND));
运行结果
##Calendar_get
Calendar提供了方法,根据给定的时间分片(各种事件单位)获取对应的值,时间分量是一个int值不需要记忆,Calendar提供了对应的常量
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
//获取年
int year = calendar.get(Calendar.YEAR);
System.out.println(year);
//获取月(从0开始)
int month = calendar.get(Calendar.MONTH)+1;
System.out.println(month);
//获取日
int date = calendar.get(Calendar.DATE);
System.out.println(date);
//获取时
int h = calendar.get(Calendar.HOUR_OF_DAY);
System.out.println(h);
//获取分
int m = calendar.get(Calendar.MINUTE);
System.out.println(m);
//获取以上所有的片段都是从第一个时间分片中获取的
//获取秒
int s = calendar.get(Calendar.SECOND);
System.out.println(s);
//获取今年的第几天
int d = calendar.get(Calendar.DAY_OF_YEAR);
System.out.println(d);
//获取今天是周几
int dd = calendar.get(Calendar.DAY_OF_WEEK);
System.out.println(dd);
//查看今年共多少天
int days = calendar.getActualMaximum(Calendar.DAY_OF_YEAR);
System.out.println(days);
//查看本月是多少天
days = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
System.out.println(days);
//求一年当中每个月有多少天
calendar.set(Calendar.YEAR, 2020);
for(int i=0;i<12;i++){
calendar.set(Calendar.MONTH, i);
int cc= calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
System.out.println((i+1)+"月有"+cc+"天");
}
}
运行结果