Calendar类概述
* 是一个抽象类,不能直接创建对象的。
如何创建日历对象
通过Calender类的静态方法创建日历对象
Calendar rightNow = Calendar.getInstance();
字段操作
可以使用三种方法更改日历字段:set()
、add()
和 roll()
。
Calendar类的常用方法
int get(int field);
根据日历字段获得对应的值
void add(int field,int value)
将指定日历字段的值在原值的基础上偏移一个值
负数,则向前偏移
正式,则向后偏移
void set(int field, int value)
设置指定日历字段的值为指定的值
void set(int year,int month, int date)
设置日历时间为指定的年月日
Date getTime(); 获得日期对象
long getTimeInMillis(); 获得时间的毫秒值。
注意事项
* 获得月份需要加一才是我们正确的月份,因为月份默认是0到11
public static void main(String[] args) { // 获得日历对象 Calendar c = Calendar.getInstance(); // 获得日期对象 Date d = c.getTime(); // 直接通过日历对象获得毫秒值 long time = c.getTimeInMillis(); System.out.println(time); System.out.println(d.getTime()); // 修改年月份 c.set(2000, 12, 20); // 修改年份 // c.add(Calendar.YEAR, -1); // 修改月份 // c.add(Calendar.MONTH, 10); // 修改日 // c.add(Calendar.DATE, 20); // c.set(Calendar.YEAR, 2020); // 根据日历字段获得对应的值 System.out.println(c.get(Calendar.YEAR)); System.out.println(c.get(Calendar.MONTH) + 1); System.out.println(c.get(Calendar.DATE)); System.out.println(c.get(Calendar.HOUR)); System.out.println(c.get(Calendar.MINUTE)); System.out.println(c.get(Calendar.SECOND)); }
求出今天距离2020年1月1日还有多少天
public static void main(String[] args) { // 创建日历对象 Calendar c = Calendar.getInstance(); // 获得当前时间的毫秒值 long today = c.getTimeInMillis(); // 修改日历时间 c.set(2020, 0, 1); // 获得2020年1月1日的毫秒值 long future = c.getTimeInMillis(); // 两个毫秒值相减 long distance = future - today; System.out.println("还有"+(distance/1000/3600/24)+"天"); }