Java Calender 类详解
一、 如何创建 Calendar 对象
Calendar 是一个抽象类, 无法通过直接实例化得到对象. 因此, Calendar 提供了一个方法 getInstance,来获得一个Calendar对象, 得到的 Calendar 由当前时间初始化.
Calendar cal = Calendar.getInstance();
二、 字段详解
Calendar 中 set 和 get 时间都是通过在参数中填入不同的字段来实现的, 不过有部分字段的常量值与约定俗成的值不相同
下面字段我们以 1998 年 2 月 28 日 23 时 11 分 11 秒 来讲解
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, 1998);
cal.set(Calendar.MONTH, 1);
cal.set(Calendar.DATE, 28);
cal.set(Calendar.HOUR_OF_DAY, 23);
cal.set(Calendar.MINUTE, 11);
cal.set(Calendar.SECOND, 11);
1. YEAR
默认情况下指示为年份.
例子中 YEAR 为 1998
2. MONTH
指示当前年中的月份数,一年中的一月的值为 0
需要注意的是 JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER 分别与 [0, 11] 对应, 在设置和获取日期时要格外注意
3. WEEK_OF_YEAR
指示当前年中的星期数. 一年中的第一个星期的值为 1.
例子中 WEEK_OF_YEAR 为 9
4. WEEK_OF_MONTH
指示当前月中的星期数. 一个月中第一个星期的值为 1.
例子中 WEEK_OF_MONTH 为 5
5. DAY_OF_MONTH
指示一个月中的某天. 它与 DATE 是同义词. 一个月中第一天的值为 1.
例子中 DAY_OF_MONTH 为 28
6. DATE
同 DAY_OF_MONTH
7. DAY_OF_YEAR
指示当前年中的天数. 一年中第一天的值为 1.
例子中 DAY_OF_YEAR 为 59
8. DAY_OF_WEEK
指示一个星期中的某天, 一周中第一天的值为 1.
需要 注意 的是, 与中国人的习惯不同, 此处一周中的第一天为 周日. 一周的顺序依次为: 周日(1), 周一(2), 周二(3), 周三(4), 周四(5), 周五(6), 周六(7) 在设置和获取日期时要格外注意
9. AM_PM
指示 HOUR 是在中午之前还是在中午之后. [0, 12) 为上午, AM_PM 值为 1 [12, 24)为下午, AM_PM 值为 0
10. HOUR
指示上午或下午的小时.
例子中 HOUR 为 11
11. HOUR_OF_DAY
指示一天中的小时。 HOUR_OF_DAY 用于 24 小时制时钟
例子中 HOUR_OF_DAY 为 23
12. MINUTE
指示一小时中的分钟
例子中 MINUTE 为 11
13. SECOND
指示一分钟中的秒
例子中 SECOND 为 11
三、 设置值
cal.set (2013, 5, 4, 13, 44, 51);//年月日时分秒 (月份0代表1月)
cal.set (Calendar.YEAR, 2014);//年
cal.set (Calendar.MONTH, 7);//月 (月份0代表1月)
cal.set (Calendar.DATE, 11);//日
cal.set (Calendar.HOUR_OF_DAY, 15);//时
cal.set (Calendar.MINUTE, 33);//分
cal.set (Calendar.SECOND, 32);//秒
四、 获取值
cal.get (Calendar.YEAR);//年
cal.get (Calendar.MONTH) + 1;//月 (必须要+1)
cal.get (Calendar.DATE);//日
cal.get (Calendar.HOUR_OF_DAY);//时
cal.get (Calendar.MINUTE);//分
cal.get (Calendar.SECOND);//秒
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 的值。
Java Calender 类详解的更多相关文章
- Java String类详解
Java String类详解 Java字符串类(java.lang.String)是Java中使用最多的类,也是最为特殊的一个类,很多时候,我们对它既熟悉又陌生. 类结构: public final ...
- Java 枚举类详解
1. 枚举类定义 在某些情况下,一个类的对象是有限而且固定的,比如季节类,它只有4个对象,这种实例有限而且固定的类,在Java里被称为枚举类. 2. 早期实现枚举的方式 public static f ...
- java Random类详解
java Random类位于java.util包下,主要用来生成随机数,本文详解介绍了Random类的用法,希望能帮到大家 Random类 (java.util) Random类中实现的随机算法是伪随 ...
- JAVA - 大数类详解
写在前面 对于ACMer来说,java语言最大的优势就是BigInteger,Bigdecimal,String三个类. 这三个类分别是高精度整数,高精度浮点数和字符串,之所以说这个是它的优势是因为j ...
- Java 枚举类 详解
1.枚举是什么? Java中的枚举其实是一种语法糖,在 JDK 1.5之后出现,用来表示固定且有限个的对象.比如一个季节类有春.夏.秋.冬四个对象:一个星期有星期一到星期日七个对象.这些明显都是固定的 ...
- Java重要类详解之ArrayList类
https://blog.csdn.net/shengmingqijiquan/article/details/52634640 一.ArrayList概述 ArrayList 是一个数组队列,相当于 ...
- 【RTTI】java Class类详解
RTTI (Run-Time Type Information)运行时类信息 Java的Class类是java反射机制的基础,通过Class类我们可以获得关于一个类的相关信息,下面我们来了解一下有关j ...
- Java常用类详解
目录 1. String类 1.1 String的特性 1.2 String字面量赋值的内存理解 1.3 String new方式赋值的内存理解 1.4 String 拼接字面量和变量的方式赋值 1. ...
- JAVA CyclicBarrier类详解
一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point).在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时CyclicBarrie ...
随机推荐
- CSS-弹性布局-动画-过渡
1.弹性布局 1.项目的属性 该组属性只能设置在某项目元素上,只控制一个项目,是不影响容器以及其他项目的效果. 1.order 作用:定义项目的排列顺序,值越小,越靠近起点,默认值是0 取值:整数数字 ...
- 数位dp小结
数位dp其实就是一种用来求区间[l, r]满足条件的数的个数.数位是指:个十百千万,而在这里的dp其实相当于暴力枚举每一位数. 我们通过把l, r的每位数分解出来,然后分别求r里满足条件的数有多少,l ...
- C# 单例模式的五种写法
1.简单实现 C# 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 public sealed c ...
- Linux---CentOS 定时运行脚本配置
很多时候我们有希望服务器定时去运行一个脚本来触发一个操作,比如使用七牛的工具上传,如果同步文件里面有新增加一个文件,这个时候我们可以提供定时脚本去完成我们需要的同步命令(七牛的qrsbox工具是自动会 ...
- 2019.01.14 codeforces685B. Kay and Snowflake(树形dp)
传送门 题意简述:给出一棵树,求每个子树的重心. 首先通过画图可以观察出一个性质,我们从叶子结点向根节点递推重心的话重心的位置是不会下降的. 然后由于一个点的重心要么是自己,要么在重儿子子树内,因此如 ...
- poj--2299(树状数组+离散化)
一.离散化: https://www.cnblogs.com/2018zxy/p/10104393.html 二.逆序数 AC代码: #include<iostream> #include ...
- windows下 python2 和python3 共存
目前我们在国内网站上看到的两者共存的方法就是将其中一个的python.exe重命名.虽说在一定程度上可行,但存在一个重大的隐患,就是修改了名字的那个python对应的pip将无法使用. 下面说一下具体 ...
- Maven进行install的时候报错,COMPILATION ERROR : Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.13:test (default-test) on project cmu: There are test failures.
maven进行install的时候,test类里面报错: COMPILATION ERROR : [INFO] -------------------------------------------- ...
- BZOJ 4765 普通计算姬 (分块 + BIT)
4765: 普通计算姬 Time Limit: 30 Sec Memory Limit: 256 MBSubmit: 1547 Solved: 329[Submit][Status][Discus ...
- tp5,thinkphp5,隐藏index.php,隐藏入口文件
一.找到/public/.htaccess文件 Apache: <IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews R ...