• java中Calender类的详细用法(详解)


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

    1 Calendar cal = Calendar.getInstance();
    

    二、 字段详解
    Calendar 中 set 和 get 时间都是通过在参数中填入不同的字段来实现的, 不过有部分字段的常量值与约定俗成的值不相同

    下面字段我们以 1998 年 2 月 28 日 23 时 11 分 11 秒 来讲解

    1 Calendar cal = Calendar.getInstance();
    2 cal.set(Calendar.YEAR, 1998);
    3 cal.set(Calendar.MONTH, 1);
    4 cal.set(Calendar.DATE, 28);
    5 cal.set(Calendar.HOUR_OF_DAY, 23);
    6 cal.set(Calendar.MINUTE, 11);
    7 cal.set(Calendar.SECOND, 11);
    
    1. YEAR
      默认情况下指示为年份.

    例子中 YEAR 为 1998

    1. MONTH
      指示当前年中的月份数,一年中的一月的值为 0

    需要注意的是 JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER 分别与 [0, 11] 对应, 在设置和获取日期时要格外注意

    1. WEEK_OF_YEAR
      指示当前年中的星期数. 一年中的第一个星期的值为 1.

    例子中 WEEK_OF_YEAR 为 9

    1. WEEK_OF_MONTH
      指示当前月中的星期数. 一个月中第一个星期的值为 1.

    例子中 WEEK_OF_MONTH 为 5

    1. DAY_OF_MONTH
      指示一个月中的某天. 它与 DATE 是同义词. 一个月中第一天的值为 1.

    例子中 DAY_OF_MONTH 为 28

    1. DATE
      同 DAY_OF_MONTH

    2. DAY_OF_YEAR
      指示当前年中的天数. 一年中第一天的值为 1.

    例子中 DAY_OF_YEAR 为 59

    1. DAY_OF_WEEK
      指示一个星期中的某天, 一周中第一天的值为 1.

    需要 注意 的是, 与中国人的习惯不同, 此处一周中的第一天为 周日. 一周的顺序依次为: 周日(1), 周一(2), 周二(3), 周三(4), 周四(5), 周五(6), 周六(7) 在设置和获取日期时要格外注意

    1. AM_PM
      指示 HOUR 是在中午之前还是在中午之后. [0, 12) 为上午, AM_PM 值为 1 [12, 24)为下午, AM_PM 值为 0

    2. HOUR
      

    指示上午或下午的小时.

    例子中 HOUR 为 11

    1. HOUR_OF_DAY
      

    指示一天中的小时。 HOUR_OF_DAY 用于 24 小时制时钟

    例子中 HOUR_OF_DAY 为 23

    1. MINUTE
      

    指示一小时中的分钟

    例子中 MINUTE 为 11

    1. SECOND
      

    指示一分钟中的秒

    例子中 SECOND 为 11

    三、 设置值

    1 cal.set (2013, 5, 4, 13, 44, 51);//年月日时分秒 (月份0代表1月) 
    2 cal.set (Calendar.YEAR, 2014);//年 
    3 cal.set (Calendar.MONTH, 7);//月 (月份0代表1月) 
    4 cal.set (Calendar.DATE, 11);//日 
    5 cal.set (Calendar.HOUR_OF_DAY, 15);//时 
    6 cal.set (Calendar.MINUTE, 33);//分 
    7 cal.set (Calendar.SECOND, 32);//秒 
    

    四、 获取值

    1 cal.get (Calendar.YEAR);//年 
    2 cal.get (Calendar.MONTH) + 1;//月 (必须要+1) 
    3 cal.get (Calendar.DATE);//日 
    4 cal.get (Calendar.HOUR_OF_DAY);//时 
    5 cal.get (Calendar.MINUTE);//分 
    6 cal.get (Calendar.SECOND);//秒 
    7 cal.get (Calendar.DAY_OF_WEEK);//星期 (Locale.ENGLISH情况下,周日是1,剩下自己推算)
    

    五、 运算值

    1. Add
    cal.add (Calendar.YEAR, 1);//年 
     cal.add (Calendar.MONTH, 1);//月 
     cal.add (Calendar.DATE, 1);//日 
     cal.add (Calendar.HOUR_OF_DAY, -1);//时 
    cal.add (Calendar.MINUTE, 1);//分 
     cal.add (Calendar.SECOND, 1);//秒 
     cal.add (Calendar.DATE, 7);//周
    

    六、 Calendar 对象间的比较
    比较两个 Calendar 对象表示的时间值, 如果参数表示的时间等于此 Calendar 表示的时间,则返回 0 值;如果此 Calendar 的时间在参数表示的时间之前,则返回小于 0 的值;如果此 Calendar 的时间在参数表示的时间之后,则返回大于 0 的值。

  • 相关阅读:
    利用相关的Aware接口
    java 值传递和引用传递。
    权限控制框架Spring Security 和Shiro 的总结
    优秀代码养成
    Servlet 基础知识
    leetcode 501. Find Mode in Binary Search Tree
    leetcode 530. Minimum Absolute Difference in BST
    leetcode 543. Diameter of Binary Tree
    leetcode 551. Student Attendance Record I
    leetcode 563. Binary Tree Tilt
  • 原文地址:https://www.cnblogs.com/a1439775520/p/12946686.html
Copyright © 2020-2023  润新知