目录
Calendar类
java.util.Calendar
Calendar类是与日历相关的一个类。由于Date类在设计上的一些缺陷,所以java提供了Calendar类来更好的处理时间和日期。Calendar是一个抽象类,表示日历,不能直接实例化,通常使用getInstance() 方法来获取实例。
Calendar类的对象也表示一个时间点,可以精确到毫秒,可以在当前时间上向前推 几年,几月,几天,几小时等,可以在当前时间上向后推 几年,几月,几天,几小时等。
欧美与中国的日期不一样
中国:1月~12月 欧美:0月~11月
中国: 周一 ~ 周日 欧美: 周日 ~ 周六
1、Calendar对象的创建
Calendar类是一个抽象类,可以调用如下方法得到它子类的实例对象
Calendar c = Calendar.getInstance(); 可以通过c访问Calendar类中定义的属性和方法
2、Calendar的常用方法
getTime() 返回Date类型时间
setTime(Date date) 设置时间到日历中
get(Calendar.YEAR/MONTH/DATE) 获取年份、月份、日
set(2015,11,11,12,11,10) 设置时间到日历中,月份从0到11
add(Calendar.YEAR/MONTH/DATE,2) 在一个日期的年,月,日上添加对应的值
getTime() 使用
Calendar calendar = Calendar.getInstance(); // 系统当前时间
Date date = calendar.getTime(); // 返回Date类型时间
System.out.println(date);
控制台结果:
Sun Jan 31 11:49:22 CST 2021
setTime(Date date) 使用
Calendar calendar = Calendar.getInstance(); // 系统当前时间
calendar.setTime(DateUtil.strToDate("2017-02-23","yyyy-MM-dd"));
System.out.println(calendar.getTime());
控制台结果:
Thu Feb 23 00:00:00 CST 2017
get(Calendar.YEAR/MONTH/DATE) 使用
Calendar calendar = Calendar.getInstance(); // 系统当前时间
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH); // 月份从0开始
int date = calendar.get(Calendar.DATE);
int hour = calendar.get(Calendar.HOUR);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
int day = calendar.get(Calendar.DAY_OF_WEEK); //获得的是这个星期的第几天 星期日是第一天
System.out.println(year+"-"+(month+1)+"-"+date+" "+hour+":"+minute+":"+second+" 星期"+(day-1));
控制台结果:
2021-1-31 0:2:35 星期0
set(2015,11,11,12,11,10) 使用
Calendar calendar = Calendar.getInstance(); // 系统当前时间
calendar.set(2019,9,20,11,11,11);
System.out.println(calendar.getTime());
控制台结果:
Sun Oct 20 11:11:11 CST 2019
add(Calendar.YEAR/MONTH/DATE,2) 使用
Calendar calendar = Calendar.getInstance(); // 系统当前时间
calendar.add(Calendar.DATE,25);
System.out.println(calendar.getTime());
calendar.add(Calendar.MONTH, 13);
System.out.println(calendar.getTime());
控制台结果:
Thu Feb 25 12:09:50 CST 2021
Fri Mar 25 12:09:50 CST 2022