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 ...
随机推荐
- SVN基本操作 (zz)
SVN基本操作 分类: LINUX 原文地址:SVN基本操作 作者:tuyer 文章摘要:SVN 基本操作:SVN是什么 Svn是一个离线的代码管理,可以多个人一起修改,然后再将修改的内容提交到Svn ...
- Linux/Python学习路线
Linux: 初级阶段: 熟练掌握常用80个命令: 掌握Linux常用软件包的安装方法,如源码安装,rpm安装等: 学习安装设备驱动程序(如网卡,显卡驱动): 了解Grub/Lilo引导程序以及简单的 ...
- 3、iOS Xcode创建protocol(代理).h文件
- mysql之存储引擎和文件配置
(查看系统服务,在运行里输入services.msc) 补充:将mysql做成系统服务:mysqld --install 取消:mysqld --romove 在服务中可以直接鼠标操作mysql服务的 ...
- 2018.11.07 NOIP模拟 分糖果(贪心)
传送门 考虑 n = 2 时的情况:假定两个人分别为(a, b),(c, d),则当且仅当min(a,d) ≤ min(b,c)时,把(a, b)放在前面更优,否则把(c, d)放在前面更优 然后把n ...
- java 判断对象是否是某个类的类型两种方法
第一种: instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例.instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例. 用法: resul ...
- BZOJ 2120 数颜色 (带修莫队)
2120: 数颜色 Time Limit: 6 Sec Memory Limit: 259 MBSubmit: 6367 Solved: 2537[Submit][Status][Discuss] ...
- oracle学习笔记一:用户管理(3)用户口令管理
当某个用户不断的尝试密码进行登录数据库是很危险的,因此对密码(口令)的管理十分重要.好在我们可以限制登录次数,超过某些次数的登录将会把用户锁住,隔一段时间才允许其登录,这和你的手机是不是有点一样,你的 ...
- screen对象和history对象
history对象保存着用户上网的历史记录,从窗口被打开的那一刻开始算起 使用go()方法可以在用户的历史记录中任意跳转 history.go(-1);//后退一页 history.go(1);//前 ...
- Gibs抽样
/* * Copyright (C) 2007 by * * Xuan-Hieu Phan * hieuxuan@ecei.tohoku.ac.jp or pxhieu@gmail.com * Gra ...