一、 如何创建 Calendar 对象

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

  1. 1 Calendar cal = Calendar.getInstance();

二、 字段详解

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

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

  1. 1 Calendar cal = Calendar.getInstance();
  2. 2 cal.set(Calendar.YEAR, 1998);
  3. 3 cal.set(Calendar.MONTH, 1);
  4. 4 cal.set(Calendar.DATE, 28);
  5. 5 cal.set(Calendar.HOUR_OF_DAY, 23);
  6. 6 cal.set(Calendar.MINUTE, 11);
  7. 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

    1. HOUR

指示上午或下午的小时.

例子中 HOUR 为 11

    1. HOUR_OF_DAY

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

例子中 HOUR_OF_DAY 为 23

    1. MINUTE

指示一小时中的分钟

例子中 MINUTE 为 11

    1. SECOND

指示一分钟中的秒

例子中 SECOND 为 11

三、 设置值

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

四、 获取值

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

五、 运算值

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

六、 Calendar 对象间的比较

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

java中Calender类的详细用法(详解)的更多相关文章

  1. Java 中 this 和 super 的用法详解

    前言 这次我们来回顾一下this和super这两个关键字的用法,作为一名Java程序员,我觉得基础是最重要的,因为它决定了我们的上限,所以我的文章大部分还是以分享Java基础知识为主,学好基础,后面的 ...

  2. c++ 中pair类模板的用法详解

    pair: 头文件:#include<utility> 类模板:template <class T1, class T2> struct pair 参数:T1是第一个值的数据类 ...

  3. Java中static变量作用和用法详解

    static表示"全局"或者"静态"的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念. 被static ...

  4. Java中链接MS SQL 数据库用法详解

    一.第一种方法: 使用JDBC-ODBC的桥方式 JDBC-ODBC桥连接器是用JdbcOdbc.class 和一个用于访问ODBC驱动程序的本地库实现的,对于Windows平台,该本地库是一个动态链 ...

  5. Java 5 的新标准语法和用法详解集锦

    Java 5 的新标准语法和用法详解集锦 Java 5 的新标准语法和用法详解集锦 (需要在首选项-java-complier-compiler compliance level中设置为java5.0 ...

  6. java中List的用法和实例详解

    java中List的用法和实例详解 List的用法List包括List接口以及List接口的所有实现类.因为List接口实现了Collection接口,所以List接口拥有Collection接口提供 ...

  7. JUC中的AQS底层详细超详解

    摘要:当你使用java实现一个线程同步的对象时,一定会包含一个问题:你该如何保证多个线程访问该对象时,正确地进行阻塞等待,正确地被唤醒? 本文分享自华为云社区<JUC中的AQS底层详细超详解,剖 ...

  8. Java中堆内存和栈内存详解2

    Java中堆内存和栈内存详解   Java把内存分成两种,一种叫做栈内存,一种叫做堆内存 在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配.当在一段代码块中定义一个变量时,ja ...

  9. Delphi中TStringList类常用属性方法详解

    TStrings是一个抽象类,在实际开发中,是除了基本类型外,应用得最多的. 常规的用法大家都知道,现在来讨论它的一些高级的用法. 先把要讨论的几个属性列出来: 1.CommaText 2.Delim ...

随机推荐

  1. [hdu5534]DP

    题目原意:给一棵n个点的树添加边,给定度函数f(d)为一个点的度的函数,求所有点的度函数的和 思路: 函数只与点的度有关,而与点无关,n个点的树有n-1条边,共产生2(n-1)个度,每个点至少有1个度 ...

  2. [hdu5253] 最小生成树,Kruskal

    题意:有n*m个单位的农田,给定每个单位农田地势高低,现在需要灌溉所有农田,如果把水引入相邻的农田里需要的管道长度为两者的高度差.求最少的管道长度花费. 思路:比较明显的最小生成树问题,相邻两点之间连 ...

  3. 世界这么大,Python 也想去看看

    把时间线拉回到 2015 年 4 月 13 日,一位河南省实验中学的心里老师在辞职信上写下了「世界那么大,我想去看看」这句话,后来爆红网络,我想这位心里老师当时写这句话的时候肯定没想到这句只有十个字的 ...

  4. 编译nginx的时候报错 需要安装PCRE

    ./configure --prefix=/mynginx/ 本地编译nginx的时候 报错 提示需要安装PCRE 错误信息: ./configure: error: the HTTP rewrite ...

  5. AT命令集详解

    1.2 AT的优点. 命令简单易懂,并且采用标准串口来收发AT命令,这样对设备控制大大简化了,转换成简单串口编程了. AT命令提供了一组标准的硬件接口--串口.这个简化的硬件设计.较新的电信网络模块, ...

  6. 如何搭建一个WEB服务器项目(二)—— 对数据库表进行基本的增删改查操作

    使用HibernateTemplate进行增删改查操作 观前提示:本系列文章有关服务器以及后端程序这些概念,我写的全是自己的理解,并不一定正确,希望不要误人子弟.欢迎各位大佬来评论区提出问题或者是指出 ...

  7. linux常用命令---网络端口信息与进程管理

    进程管理 进程管理

  8. oracle 查询表及字段结构

    select --*tcl.column_name,cc.comments col_comments,data_type,case data_type when 'NUMBER' then '('|| ...

  9. 实验三 Java基本程序设计

    第一部分:理论知识复习部分 第一章:第一章介绍的是Java程序设计的概述,通过两周的Java学习中,重温了Java“白皮书的关键术语,更深一步理解乐11个关键术语. 第二章:本章主要介绍如何安装JDK ...

  10. Hibernate实现limit查询报错 :unexpected token: limit near line 1, column 33 [from pojo.Product p order by id limit ?,? ]

    原因: hibernate无法识别limit,  hql语句更不能这样写String hql="from Product p order by id limit ?,? "; 解决 ...