日历类 java.util.Calender,在Date后出现,替换掉了许多Date的方法。该类将所有可能用到的时间信息封装为静态成员变量,方便获取。日历类就是方便获取各个时间属性的。
Calendar为抽象类,无法直接创建对象使用,里面有一个静态方法叫getInstance(),该方法返回了Calendar类的子类对象。
static Calendar getInstance() 使用默认时区和语言环境获取一个日历
// 导包
java.util.Calendar
public class Calendar{
public void main(String[] aegs){
// 多态
Calendar c = Calendar.getInstance();
Syste.out.println(c);
}
}
get方法用来获取指定字段的值,set方法用来设置指定字段的值
Calendar类的常用成员方法
格式:
? public int get(int field):返回给定日历字段的值
? 参数:传递指定的日历字段(YEAR,MONTH...)
返回值:日历字段代表的具体的值
public static void main(String[] args) {
demo01();
}
public static void demo01(){
// 使用getInstance方法获取Calendar对象
Calendar c = Calendar.getInstance();
System.out.println(c);
int year = c.get(Calendar.YEAR);
System.out.println(year);
int mouth = c.get(Calendar.MONTH);
// 西方月份0-11 东方月份1-12
System.out.println(mouth);
int date = c.get(Calendar.DAY_OF_MONTH);
System.out.println(date);
int date2 = c.get(Calendar.DATE);
System.out.println(date2);
}
格式:
? public void set(int field,int value):将给定的日历字段设置为给定值
参数:
? int field:传递指定的日历字段(YEAR,MONTH...)
? int value:给指定的字段设置值
public static void main(String[] args) {
demo02();
}
public static void demo02(){
// 使用getInstance方法获取calendar对象
Calendar c = Calendar.getInstance();
System.out.println(c);
c.set(999,6,6);
// 获取年
c.set(Calendar.YEAR,666);
int year = c.get(Calendar.YEAR);
System.out.println("系统时间:"+year);
System.out.println("重新设置年::"+year);
// 重新设置月
c.set(Calendar.MONTH,6);
int month = c.get(Calendar.MONTH);
System.out.println("月份:"+month);
// 重新设置日
c.set(Calendar.DATE,11);
// 获取日
int date = c.get(Calendar.DATE);
System.out.println(date);
c.set(999,6,6);
System.out.println(year+"年"+month+"月"+date+"日");
}
格式:
? public abstract void add(int field,int amount):根据日历的规则,得指定的日历字段添加或者减去指定的时间量把指定的字段量增加/减少指定的值
参数:
? int field:传递指定的日历字段(YEAR,MONTH...)
? int amount:增加/减少指定的值
? 正数:增加
? 负数:减少
public static void main(String[] args) {
demo03();
}
public static void demo03(){
Calendar c = Calendar.getInstance();
// 增加两年
c.add(Calendar.YEAR,2);
int year = c.get(Calendar.YEAR);
System.out.println(year);
// 减少两个月
c.add(Calendar.MONTH,-1);
int month = c.get(Calendar.MONTH);
System.out.println(month);
}
Calendar中的getTime方法并不是获取毫秒时刻,而是拿到对应的Date对象。
格式:
? public Date getTime():返回一个表示此calendar时间值(从历元到现在的毫秒值偏移量)的Date对象
把日历对象,转换为日期对象
public static void main(String[] args) {
demo04();
}
public static void demo04(){
// 使用getInstance方法获取calendar对象
Calendar c = Calendar.getInstance();
Date date = c.getTime();
System.out.println(date);
// Thu Mar 12 23:20:35 CST 2020
}
小贴士:
? 西方星期的开始为周日,中国为周一。
? 在Calendar类中,月份的表示是以0-11代表1-12月。
? 日期是有大小关系的,时间靠后,时间越大。
原文:https://www.cnblogs.com/anke-z/p/12483693.html