直接从需求来理解:将2024年2月16日增加一个月
如果不使用Calendar的话,我们需要定义字符串记住这个日期,然后把字符串解析成Date日期对象,通过Date日期对象获取其毫秒值,然后增加一个月的毫秒值,再格式化时间毫秒值得到结果。
但是我们用Calendar来解决的话就很简单,Calendar代表的是系统此刻时间对应的日历,通过它可以单独获取、修改时间中的年月日时分秒。
Calendar是一个抽象类,不能直接使用,Calendar提供了一个类方法getInstance,用于获取此类型的通用对象。Calendar rightNow = Calendar.getInstance();
import java.util.Calendar;
import java.util.Date;
public class Test {
public static void main(String[] args){
//1得到系统此刻时间对应的日历对象
Calendar now = Calendar.getInstance();
// System.out.println(now);
//2获取日历中的某个信息
int y = now.get(Calendar.YEAR); //从日历对象中获取年
System.out.println(y);
int d = now.get(Calendar.DAY_OF_MONTH);
System.out.println(d);
//3拿到日历中记录的日期对象
Date dd = now.getTime();
System.out.println(dd);
//4拿到时间毫秒值
long time = now.getTimeInMillis();
System.out.println(time);
//5修改日历中的某个信息
//把月份改成10月
now.set(Calendar.MONTH,8);
int m2 = now.get(Calendar.MONTH);
System.out.println(m2); //8
//6为某个信息增加或减少多少
now.add(Calendar.MONTH,2);
int m3 = now.get(Calendar.MONTH);
System.out.println(m3); //10
System.out.println(now);
}
}