calendar可以设置相对时间,或者直接设置时间。这个用的比较多
1:对象的获取
Calendar calendar = Calendar.getInstance();
System.out.println(calendar);
打印结果
java.util.GregorianCalendar
[time=1511346308476,areFieldsSet=true,areAllFieldsSet=true,lenient=true,
zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",
offset=28800000,
dstSavings=0,
useDaylight=false,
transitions=19,
lastRule=null],
firstDayOfWeek=1,
minimalDaysInFirstWeek=1,
ERA=1,YEAR=2017,MONTH=10,WEEK_OF_YEAR=47,WEEK_OF_MONTH=4,DAY_OF_MONTH=22,DAY_OF_YEAR=326,DAY_OF_WEEK=4,DAY_OF_WEEK_IN_MONTH=4,AM_PM=1,HOUR=6,HOUR_OF_DAY=18,MINUTE=25,SECOND=8,
MILLISECOND=476,ZONE_OFFSET=28800000,DST_OFFSET=0]
//这个日历对象中就封装了各种需要的信息。随便取
2:从对象中取出日历信息:
System.out.println(calendar.get(calendar.YEAR)); 年 2017
System.out.println(calendar.get(calendar.MONTH));月 10 , 11月
System.out.println(calendar.get(calendar.DATE)); 日 22
注意:才calendar中 0表示1月份,11表示12月份。类推。
3:设置时间:
相对现在:正数表示向后,负数表示向前
calendar.add(Calendar.YEAR, -2); 当前时间向前2年
System.out.println(calendar.get(Calendar.YEAR)); 2015
calendar.add(Calendar.MONTH, -3);//月份向前3月
System.out.println(calendar.get(Calendar.MONTH)); 7 ,8月
直接设置制定字段:
calendar.set(Calendar.YEAR, 2018);
System.out.println(calendar.get(Calendar.YEAR)); //2018
直接设置指定时间:
calendar.set(2000,2,1); //2000 2 1
System.out.println(calendar.get(Calendar.YEAR));//2000
System.out.println(calendar.get(Calendar.MONTH));// 2 表示的3月
System.out.println(calendar.get(Calendar.DATE));//1
4:与date对象相互转化:
//获取当前时间毫秒值
//Date类的getTime方法获取当前时间的毫秒值
long time = new Date().getTime();
System.out.println(time);
//Calendar的getTime方法 将日历对象转换为日期对象
Calendar c = Calendar.getInstance();
Date date = c.getTime();
//获取毫秒值
long time2 = date.getTime();
System.out.println(time2);
//Calendar获取毫秒值的方法 long getTimeInMillis()
Calendar now = Calendar.getInstance();
long timeInMillis = now.getTimeInMillis();
System.out.println(timeInMillis);