当前位置 博文首页 > 立志欲坚不欲锐,成功在久不在速度:Java常用类- Calendar类的常

    立志欲坚不欲锐,成功在久不在速度:Java常用类- Calendar类的常

    作者:[db:作者] 时间:2021-07-16 13:18

    一、 如何创建 Calendar? 日历对象
    Calendar 是一个抽象类, 无法通过直接实例化得到对象. 因此, Calendar 提供了一个方法 getInstance,来获得一个Calendar对象, 得到的 Calendar 由当前时间初始化.

    Calendar cal=Calendar.getInstance();

    二、Canendar?的常用方法:

    ? //使用默认时区我们可以获得当前的日历时间

     Canendar cal=Calendar.getInstance();
    
    //获取年
    System.out.println("年" + cal.get(Calendar.YEAR));
    //获取月
    System.out.println("月" + cal.get(Calendar.MONTH) + 1));
    //获取日
    System.out.println("日" + cal.get(Calendar.DAY_OF_MONTH));
    //获取时
    System.out.println("时" + cal.get(Canendar.HOUR_OF_DAY));
    //获取分
    System.out.println("分"+ cal.get(Calendar.MINUTE));
    //获取秒
    System.out.println("秒"+ cal.get(Calendar.SECOND));
    

    设置时间:

    注意:月份的下标从0开始,设置时同样需要注意,举个例子:我们想设置2020年除夕倒计时的最后一秒

    Calendar cal=Calendar.getInstance();
    //可以一次性设置年月日时分秒   由于月份下标从0开始 赋值月份要 -1 
    //cal.set(year,month,date,hourOfDay,minute,second);
    cal.set(2020,1,15,23,59,59)

    也可以单独赋值:

    cal.set(Calendar.YEAR,2020);
    //由于月份下标从0开始 所以赋值月份要-1
    cal.set(Calendar.MONTH,1);
    cal.set(Calendar.DAY_OF_MONTH,15);
    cal.set(Calendar.HOUR_OF_DAY,23);
    cal.set(Calendar.SECOND,59);
    cal.set(Calendar.SECOND,59);
    System.out.println(cal.getTime());
    
    

    三、常用的add方法

    比如在59秒?增加一秒

    Calendar cal=Calendar.getInstance();
    System.out.println(cal.getTime);
    cal.set(2018,1,15,23,59,59);
    cal.add(Calendar.SECOND,1);
    System.out.println(cal.getTime());

    这个时候?cal就时间就多一秒

    实战实例:?

    业务描述:有一个业务是折线图,横坐标是从当前的时间开始往前推12个月,要过去一年每个月的时间,这里就用到了add

    public static List<String> getCurrentMonth(){
    //设置日期的格式化
      SimpleDateFormat timeFormat=new SimpleDateFormat("yyyy-MM");
      Calendar calendar=Calendar.getInstance();
      List<String> stringList=new ArrayList<>();
      stringList.add(timeFormat.format(calendar.getTime));
      for( int i=0;i<number-1;i++){
            //因为我是要往前推一个月所以-1,如果要获取下一个月直接 写 1 即可
            //每次calendar 的值都会被覆盖
            calendar.add(Calendar.MONTH,-1);
            stringList.add(timeFormat.format(calendar.getTime));
        }
     
    }

    ?

    ?

    ?

    cs