zoukankan      html  css  js  c++  java
  • Calendar用法随笔

    平时在处理时间问题的时候,一般会想到用java.util.Date类型,在使用倒时间的运算的时候,就不是很方便,找找到了java.util.Calendar类,中文意思是“日历”,以下就是自己对这个类的总结了,有不足之处请指正。

    一.声明Calendar类,Calendar是一个抽象类,不能直接New一个实例,可以有两种方法得到它的实例:
    方法一:Calendar cal = new GregorianCalendar(); //GregorianCalendar是Calendar的实现类,
    方法二:Calendar cal = Calendar.getInstance();

    通过以上方法获得的实例,默认都是当前日期。验证如下:

    System.out.println("打印结果:"+(new SimpleDateFormat("yyyy-MM-dd hh-mm-ss SSSS E").format(calendar.getTime())));
    
    打印结果:2015-09-12 08:57:02 0565 星期六

    上述是使用了格式转换.

    同样,也可以直接使用Calendar对象自己的get()方法来获取具体的值:

    System.out.println("打印结果:Calendar.DAY_OF_WEEK:"+calendar.get(Calendar.DAY_OF_WEEK));//表示星期几。从星期日开始到星期六为一个周期,数字表示依次为:1,2,3……7。
    calendar.add(Calendar.MONTH, 1);//MONTH的表示是从数字0开始,所以月份应该是该数字+1.
    System.out.println("打印结果:"+ calendar.get(Calendar.YEAR)+"-"+ calendar.get(Calendar.MONTH)+"-"+ calendar.get(Calendar.DAY_OF_MONTH)+" "+ calendar.get(Calendar.HOUR_OF_DAY)+":"+ calendar.get(Calendar.MINUTE)+":"+ calendar.get(Calendar.SECOND) );
    打印结果:Calendar.DAY_OF_WEEK:7
    打印结果:2015-9-12 8:59:55

    获取方法--Calendar对象.get(类的属性);

    二:常用属性: 

     1 AM_PM                           上午/下午标志
     2 DATE                            完整日期标志
     3 DAY_OF_MONTH                       本月第几天
     4 DAY_OF_WEEK                        星期几
     5 DAY_OF_WEEK_IN_MONTH                   尚未理解)
     6 DAY_OF_YEAR                        本年度的第几天
     7 HOUR                            小时(12小时制,分上下午)
     8 HOUR_OF_DAY                        小时(24小时制,不分上下午)
     9 MILLISECOND                        微秒
    10 MINUTE                           分钟
    11 MONTH                            月份
    12 SECOND                           13 WEEK_OF_MONTH                       本月第几个星期
    14 calendar.getActualMaximum(Calendar.DAY_OF_MONTH) 一个月中最大值

    三:Calendar设定一个时间值

      方法一:setTime(Date date)

      方法二:set(int field, int value)

      方法三://使用这个方法的时候需要注意,month是需要在正常月份-1
        set(int year, int month, int date)
        set(int year, int month, int date, int hourOfDay, int minute)
        set(int year, int month, int date, int hourOfDay, int minute, int second)

      方法四:setTimeInMillis(long millis)

    四:Calendar对象的运算  

    (1)add()方法
    SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
    Calendar cal=Calendar.getInstance();
    cal.set(Calendar.YEAR, 2006);
    cal.set(Calendar.MONTH, 8);
    cal.set(Calendar.DAY_OF_MONTH, 3);
    cal.add(Calendar.DATE, -4);
    Date date=cal.getTime();
    System.out.println(df.format(date));
    cal.add(Calendar.DATE, 4);
    date=cal.getTime();
    System.out.println(df.format(date));
    输出:
        2006-08-30
        2006-09-03
    (2)roll方法
    cal.set(Calendar.YEAR, 2006);
    cal.set(Calendar.MONTH, 8);
    cal.set(Calendar.DAY_OF_MONTH, 3);
    cal.roll(Calendar.DATE, -4);
    date=cal.getTime();
    System.out.println(df.format(date));
    cal.roll(Calendar.DATE, 4);
    date=cal.getTime();
    System.out.println(df.format(date));
    输出:
        2006-09-29
        2006-09-03
    可见,roll()方法在本月内循环,一般使用add()方法;

     五.Calendar和Date的转化
      

    (1) Calendar转化为Date
        Calendar cal=Calendar.getInstance();
        Date date=cal.getTime();
    (2) Date转化为Calendar  
        Date date=new Date();
        Calendar cal=Calendar.getInstance();
        cal.setTime(date);
  • 相关阅读:
    电子公文传输系统-个人贡献
    电子公文传输系统团队项目 冲刺总结
    2020课程设计——个人报告
    2020课程设计——小组报告
    电子公文传输系统团队项目 描述设计
    OpenSSL中的dgst、dh、dhparam、enc命令使用说明
    用OpenSSL搭建的CA配置tomcat,部署https网站
    2020课程设计——第三周进展
    myod-系统调用版本
    20181312 2020-2021-1 《信息安全系统设计与实现(上)》用myod实现Linux下od -tx -tc功能
  • 原文地址:https://www.cnblogs.com/mytzq/p/4801546.html
Copyright © 2011-2022 走看看