欢迎光临散文网 会员登陆 & 注册

java Calendar类

2022-07-13 20:17 作者:虚云幻仙  | 我要投稿

/**
* 测试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
   }
}

java Calendar类的评论 (共 条)

分享到微博请遵守国家法律