/**
* 测试Calendar类日历抽象类 和 GregorianCalendar类公历子类
*/
public class TestDate2 {
public static void main(String[] args) {
Calendar calendar = new GregorianCalendar(2000,11,1,23,0,5);
//2000年 12月!!注意0代表1月 11代表12月 1号 23点 0分 5秒 输入数字比实际月份小1个月 取值范围从0-11
System.out.println(calendar.getTime()+”的结果为Fri Dec 01 23:00:05 CST 2000″);
//Dec对应11
Date d1 = calendar.getTime();
//.getTime()返回Date类对象
calendar.setTime(new Date());
//将Date对象的值赋给calendar
GregorianCalendar gc2 = new GregorianCalendar(2010,0,5,10,20,30);
System.out.println(gc2.getTime()+”的结果为周二Tue Jan 05 10:20:30 CST 2010″);
int year = gc2.get(Calendar.YEAR);
//.get(int field)返回 field所代表的属性的值 返回值为int field年月日等属性对应不同的int值 通过Calendar.常量直接调用 结果2010
int month = gc2.get(Calendar.MONTH);
//结果 0 0+1一月 .get()返回int
int week = gc2.get(Calendar.WEEK_OF_MONTH);
//月中第几周 结果2
int day = gc2.get(Calendar.DAY_OF_MONTH);
//月中几号 结果5号
int dayOfWeek = gc2.get(Calendar.DAY_OF_WEEK);
System.out.println(dayOfWeek+”的结果为3 周二对应3″);
//day of week 的2对应周一 1对应周日 7对应周六 输出周几比实际周几大一天 取值范围1-7
gc2.set(Calendar.YEAR,2022);
//.set(int field, int value) 给哪个field赋值value 和get(field)一样可以通过内置的常量调用
gc2.set(Calendar.MONTH,Calendar.OCTOBER);
//每个月也有对应的常量
gc2.set(Calendar.DAY_OF_MONTH,20);
gc2.set(Calendar.HOUR_OF_DAY,20);
gc2.set(Calendar.MINUTE,20);
gc2.set(Calendar.SECOND,30);
SimpleDateFormat df = new SimpleDateFormat(“yyyy年MM月dd日 E hh:mm:ss”);
//通过SimpleDateFormat构造器规定日期显示格式
System.out.println(df.format(gc2.getTime())+”的结果为2022年10月20日 星期四 08:20:30″);
//df.format(Date date) gc2.getTime()返回Date
}
}
class MyCalendar{
public static void printCalendar(Calendar c){
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH)+1;
//用中文表述需要+1
int day = c.get(Calendar.DAY_OF_MONTH);
int dayOfWeek = c.get(Calendar.DAY_OF_WEEK)-1;
//用中文表述需要-1 原本是1对应周日 7对应周六 没有0 -1后变成1-6对应周一到周六 0对应周日
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
int second = c.get(Calendar.SECOND);
System.out.printf(“%d年%d月%d日”,year,month,day);
//%d占位符代表数字 字符串中每一个占位符对应后边的一个参数 %s代表字符串
switch(dayOfWeek){
case 0:
System.out.print(“周日”);
//将int的周几打印汉字
break;
case 1:
System.out.print(“周一”);
break;
case 2:
System.out.print(“周二”);
break;
case 3:
System.out.print(“周三”);
break;
case 4:
System.out.print(“周四”);
break;
case 5:
System.out.print(“周五”);
break;
case 6:
System.out.print(“周六”);
break;
}
System.out.printf(“%d:%d:%d”,hour,minute,second);
}
public static void main(String[] args) {
GregorianCalendar gc = new GregorianCalendar();
//无参生成当下时刻
printCalendar(gc);
//结果2022年7月12日周二13:9:0
}
}