概述
Calendar代表了系统此刻日期对应的日历对象。
Calendar是一个抽象类。不能直接创建对象。
Calendar为某一时刻和一组日历字段之间的转换提供了一些方法,并且为操作日历字段提供了一些方法
Calendar提供了一个类方法getInstance用于获取Calendar对象,其日历字段已使用当前日期和时间
初始化:
Calendar rightNow = Calendar.getInstance();
获取年月日:
public int get (int field) :获取某个字段的值
设置当前日历的年月日:
public final void set(int year,int month,int date)
public vold add(int field, int amount): 为某个字段增加/减少指定的值
public final Date getTime(): 拿到此刻日期对象。
public long getTimeInMillis(): 拿到此刻时间毫秒值
public class CalendarDemo {
public static void main(String[] args) {
Calendar c = Calendar.getInstance(); // 多态的形式
// System.out.println(c);可以得到现在的日历信息
// public int get (int field) 获取年月日
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH) + 1;
int day = c.get(Calendar.DATE);
System.out.println(year + "年" + month + "月" + day + "日");
// public abstract void add(int field,int amount):根据日历的规则,将指定的时间量添加或减去给定的日历字段
// 三年前的今天
c.add(Calendar.YEAR, -3);
int year1 = c.get(Calendar.YEAR);
int month1 = c.get(Calendar.MONTH) + 1;
int day1 = c.get(Calendar.DATE);
System.out.println(year1 + "年" + month1 + "月" + day1 + "日");
// 十年后的五天前
c.add(Calendar.YEAR, 10);
c.add(Calendar.DATE, -5);
int year2 = c.get(Calendar.YEAR);
int month2 = c.get(Calendar.MONTH) + 1;
int day2 = c.get(Calendar.DATE);
System.out.println(year2 + "年" + month2 + "月" + day2 + "日");
//public final void set(int year,int month,int date):设置当前日历的年月日
c.set(2111, 11, 11);
int year3 = c.get(Calendar.YEAR);
int month3 = c.get(Calendar.MONTH) + 1;
int day3 = c.get(Calendar.DATE);
System.out.println(year3 + "年" + month3 + "月" + day3 + "日");
}
}
问701天后15小时是什么时间
/**
* 问701天 15小时后是什么日子
*
*/
public class CalendarTest {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_YEAR,701);//加天数
cal.add(Calendar.HOUR_OF_DAY,15);
long timeInMillis = cal.getTimeInMillis();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String format = sdf.format(timeInMillis);
System.out.println(format);//2022-05-30 10:01:15
}
}
``