zoukankan      html  css  js  c++  java
  • Java calendar类学习笔记

    Java Calendar类

    calendar类是abstract类,实际使用时实现特定的子类对象

    创建一个代表当前日期的Calendar对象

    Calendar ss=Calendar.getlnstance();

    Calendar 类对象字段类型

    Calendar类能够很好的实现在项目中需要用到的对时间的处理


    //根据当前语言地区环境获取一个日历对象

    Calendar c = Calendar.getlnstance();

    System.out.println(c);

    System.out.println("获取年份:"+c.get(Calendar.YEAR));

    System.out.println("获取月份:"+(c.get(Calendar.MONTH)+1);//月份0~11

    System.out.println("获取日期(今天是该月的第几天):"+c.get(Calendar.DAY_OF_MONTH));

    System.out.println("获取小时数(12小时制):"+c.get(Calendar.HOUR));

    System.out.println("获取小时数(24小时制):"+c.get(Calendar.HOUR_OF_DAY));

    System.out,println("获取分钟数:"+c.get(Calendar.MINUTE));

    System.out.println("获取秒钟数:"+c.get(Calendar.SECOND));

    System.out.println("获取毫秒数:"+c.get(Calendar.MILLISECOND));

    System.out.println("获取当前是该年中的第几天:"+c.get(Calendar.DAY_OF_YEAR));

    System.out.println("获取今天是周几:"+c.get(Calendar.DAY_OF_WEEK));

    //如何获取今年的总天数

    System.out.println(c.getActualMaximum(Calendar.DAY_OF_YEAR));

    //获取当前日历表示的该月份的最大天数

    System.out.println(c.getActualMaximum(Calendar.DAY_OF_MONTH));

    //将日期设置到这个月的一天

    c.set(Calendar.DAY_OF_MONTH,1);

    Calendar常量(field)的作用

    Calendar cal = Calendar.getInstance();
    cal.get(Calendar.DATE);//-----------------------当天 1-31
    cal.get(Calendar.DAY_OF_MONTH);//---------------当天 1-31
    cal.get(Calendar.DAY_OF_WEEK);//----------------从星期天开始计算,如果今天星期二,那么返回3
    cal.get(Calendar.DAY_OF_YEAR);//----------------
    cal.get(Calendar.HOUR);//-----------------------12小时制
    cal.get(Calendar.HOUR_OF_DAY);//----------------24小时制,一般使用这个属性赋值
    cal.get(Calendar.MILLISECOND);//----------------
    cal.get(Calendar.MINUTE);//---------------------
    cal.get(Calendar.SECOND);//---------------------
    cal.get(Calendar.WEEK_OF_MONTH);//--------------
    cal.get(Calendar.WEEK_OF_YEAR);//---------------
    cal.get(Calendar.MONTH);//-----------------------月份获取需要 +1,那么,赋值时需要 -1


    我们用这些常量进行赋值,也可以说是可以通过它获取值同样可以通过它进行对应赋值

    主要赋值语句

    cal.set(Calendar.XXX, VVVV);//--------------------- 对以上每个字段(field)进行赋值,代码重复较大
    cal.set(year,month,date,hour,minute,second);//----- 分别对字段(field)进行赋值,效率高

    赋值时,week与month需注意,week需要指定setFirstDayOfWeek,然而,月份则需要加减1。赋值时,我们一般采用年,月,日,时,分,秒。

    主要计算

    cal1.roll(Calendar.MONTH,3);//---------------------- 一般不使用,原因是该方法只在一个月里面循环计算,其大小不会超过该月最值
    cal1.add(Calendar.YEAR,-1);//----------------------- 使用 XX_OF_XX 的field进行加减计算效果更佳,而且计算准确
    cal1.add(field,value);//----------------------------

    cal.roll(Calendar.DAY_OF_MONTH, 32);虽然32已经超出了最大的可能31,但是cal实际是不会超出该月的,而是把32减去该月天数之后,重新计算剩下的天数;

    cal1.add(Calendar.MONTH, 1); 如果当前为8-31,那么,加一个月的话就是9-30,这个才是真正的准确。

  • 相关阅读:
    linux:centos7开启指定端口,开放外网访问
    zookeeper 集群搭建
    单机安装zookeeper的3.4.7版本
    CentOS7下安装jdk1.8并配置环境变量,防火墙设置开关
    Redis分布式锁的正确实现方式
    MySQl5.7 忘记密码怎么办?
    Flink 之Window(窗口)
    Flink之Sink(文件、Kafka、Redis、Es、Mysql)
    Canal同步Mysql数据至Hbase
    Flink 之分流Select与Split
  • 原文地址:https://www.cnblogs.com/Ytcstrive/p/13383180.html
Copyright © 2011-2022 走看看