简介

Java.util.Calendar是日历类,在Date后出现,替换掉了许多Date的方法。该类将所有可能用到的时间信息封装为静态成员变量,方便获取。日历类就是方便获取各个时间属性的。注意Calendar是一个抽象类,无法直接创建对象使用。里面有一个静态方法public static Calendar getInstance()使用默认时区和语言环境获得一个日历。返回的 Calendar 基于当前时间,使用了默认时区和默认语言环境。(简而言之就是返回此类的子类对象)

常用方法:

  • public int get(int field):返回给定日历字段的值。
  • public void set(int field, int value):将给定的日历字段设置为给定值。
  • public abstract void add(int field, int amount):根据日历的规则,为给定的日历字段添加或减去指定的时间量。
  • public Date getTime()`:返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象。

成员方法参数:

  • int field :日历类的字段,(也就是成员变量值),可以使用Calendar类的静态成员变量名称获取。

字段值的具体含义为:

  • YEAR :默认情况下获取系统当前的年份
  • MONTH:默认情况下获取系统当前年中的月份数,一年中的一月的值为 0
  • WEEK_OF_YEAR:默认情况下获取系统当前年中的星期数. 一年中的第一个星期的值为 1.
  • WEEK_OF_MONTH:默认情况下获取系统当前月中的星期数. 一个月中第一个星期的值为 1.
  • DAY_OF_MONTH:默认情况下获取系统当前一个月中的某一天. 它与 DATE 是同义词. 一个月中第一天的值为 1.
  • DATE :等同 DAY_OF_MONTH
  • DAY_OF_YEAR :默认情况下获取系统当前年中的天数. 一年中第一天的值为 1.
  • DAY_OF_WEEK:默认情况下获取系统当前一个星期中的某天, 一周中第一天的值为 1
  • AM_PM默认情况下获取系统当前HOUR 是在中午之前还是在中午之后. [0, 12) 为上午, AM_PM 值为 1 [12, 24)为下午, AM_PM 值为 0
  • HOUR:默认情况下获取系统当前上午或下午的小时.
  • HOUR_OF_DAY:默认情况下获取系统当前一天中的小时。 HOUR_OF_DAY 用于 24 小时制
  • MINUTE:默认情况下获取系统当前一小时中的分钟
  • SECOND:默认情况下获取系统当前一分钟中的秒

代码举例:

package demo03;

import java.sql.SQLOutput;
import java.util.Calendar;
import java.util.Date;

public class CalendarTest {
    public static void main(String[] args) {
        //获取日历类子类对象
        Calendar calendar = Calendar.getInstance();
        // get(int field)获取指定字段的值
        System.out.println("现在的年份是" + calendar.get(Calendar.YEAR) + "年");//获取当前系统的年份
        System.out.println("现在的月份是" + calendar.get(Calendar.MONTH) + "月");//获取当前系统的月
        System.out.println("现在是一个月中第" + calendar.get(Calendar.DATE) + "天");//获取当前系统的日
        // set(int field, int value):给指定字段设置新的值
        calendar.set(Calendar.YEAR, 2022);
        System.out.println("现在的年份是" + calendar.get(Calendar.YEAR) + "年");//获取当前系统设置后的年份
        // add(int field, int amount):为给定的日历字段添加(整数)或减去(负数)指定的时间量。
        calendar.add(Calendar.DATE, -3);
        System.out.println("现在的年份是" + calendar.get(Calendar.DATE) + "天");//获取当前系统减3日后的值}
        Date date = calendar.getTime();//获取系统当前的Date对象
        long time = date.getTime();//从时间原点到现在的系统时间过去了多少毫秒
        System.out.println(time);
    }
}

执行结果

 注意:

  • ​ 西方星期的开始为周日,中国为周一。
  • ​在Calendar类中,月份的表示是以0-11代表1-12月。
  • ​日期是有大小关系的,时间靠后,时间越大。

类 Calendar的更多相关文章

  1. 日历类Calendar

    在早期的JDK版本中,日期(Date)类附有两大功能:(1)允许用年.月.日.时.分.秒来解释日期:(2)允许对表示日期的字符串进行格式化和句法分析.在JDK1.1中提供了类Calendar来完成第一 ...

  2. Java 时间类-Calendar、Date、LocalDate/LocalTime

    1.Date 类 java.util.Date是一个"万能接口",它包含日期.时间,还有毫秒数,如果你只想用java.util.Date存储日期,或者只存储时间,那么,只有你知道哪 ...

  3. 日期操作类--Calendar类

    Calendar-API Calendar类 通过Date和DateFormat能够格式化并创建一个日期对象了,但是我们如何才能设置和获取日期数据的特定部分呢,比如说小时,日,或者分钟? 我们又如何在 ...

  4. 日期Data类,日历类Calendar

    用于得到当前时间,和设置日期类数据 public void testDate() { // 创建一个日期对象 Date date = new Date(); /** * 从1900年1月1日 00:0 ...

  5. 操作日期时间类 Calendar类

    使用Calendar类可以直接创建Calendar的子类GregorianCalendar  来直接实例化, GregorianCalendar calendar = new GregorianCal ...

  6. 类Calendar

    /* * Calendar类概述及其方法 * * Calendar类概述 * Calendar类是一个抽象类,它为特定瞬间与一组诸如YEAR.MONTH.DAY_OF_MONTH.HOUR等 * 日历 ...

  7. Java 学习 时间格式化(SimpleDateFormat)与历法类(Calendar)用法详解

    基于Android一些时间创建的基本概念 获取当前时间 方式一: Date date = new Date(); Log.e(TAG, "当前时间="+date); 结果: E/T ...

  8. Java—时间的原点 计算时间所使用的 Date类/DateFormat类/Calendar类

    Date类 类 Date 表示特定的瞬间,精确到毫秒. 毫秒概念:1000毫秒=1秒 毫秒的0点: System.currentTimeMillis()  返回值long类型参数 用于获取当前日期的毫 ...

  9. java日历类Calendar简单使用

    import java.util.Calendar; import java.util.TimeZone; public class Test1 { public static void main(S ...

随机推荐

  1. C#常见金额优选类型及其三种常用的取整方式

    这两天一直在做一个商城后台的对账方面的工作,忽然发现C#真的有很多值的学习的东西: 一.C#常用的三种取整方式(主要适用于double.decimal.float这一类型的数据): Math.Roun ...

  2. 你连Nginx怎么转发给你请求都说不清楚,还好意思说自己不是CRUD工程师?

    目录 一.Nginx工作原理二.Nginx进程模型三.Nginx处理HTTP请求流程 Nginx 工作原理 Nginx由内核和模块组成,Nginx本身做的工作实际很少,当它接到一个HTTP请求时,它仅 ...

  3. [Abp vNext 源码分析] - 2. 模块系统的变化

    一.简要说明 本篇文章主要分析 Abp vNext 当中的模块系统,从类型构造层面上来看,Abp vNext 当中不再只是单纯的通过 AbpModuleManager 来管理其他的模块,它现在则是 I ...

  4. Python基础(文件操作)

    文件读取: #文件读取方式一 f=open("a.txt","r+",encoding="utf8") data=f.read() prin ...

  5. 6.Flask-WTForms

    Flask-WTF是简化了WTForms操作的一个第三方库.WTForms表单的两个主要功能是验证用户提交数据的合法性以及渲染模板.还有其它一些功能:CSRF保护, 文件上传等.安装方法:pip in ...

  6. 一次composer错误使用引发的思考

    一次composer错误使用引发的思考 这个思考源自于一个事故.让我对版本依赖重新思考了一下. 事故现象 一个线上的管理后台,一个使用laravel搭建的管理后台,之前在线上跑的好好的,今天comop ...

  7. unity中ScriptableObject在assetbundle中的加载

    转载请标明出处:http://www.cnblogs.com/zblade/ 以前都是写一些个人的调研博客,从今天开始,也写一些个人在开发中遇到的一些可以分享的趟坑博客,为后续的开发人员提供一些绵薄之 ...

  8. ASP.Net Mvc实现自定义User Identity用户身份识别系统(1)

    目的 当我们新建asp.net mvc 项目时,我们在使用下图所示的代码是否有以下思考: 1,在this.User.Identity.Name,为什么可以使用this便可以选中Name属性: 2,若项 ...

  9. Java并发编程实战 之 对象的共享

    上一篇介绍了如何通过同步多个线程避免同一时刻访问相同数据,本篇介绍如何共享和发布对象,使它们被安全地由多个进程访问. 1.可见性 通常,我们无法保证执行读操作的线程能看到其他线程写入的值,因为每个线程 ...

  10. 基础概念PHP-FPM、FastCGI和CGI

    在搭建 LAMP/LNMP 服务器时,会经常遇到 PHP-FPM.FastCGI和CGI 这几个概念.如果对它们一知半解,很难搭建出高性能的服务器.接下来我们就以图形方式,解释这些概念之间的关系. 基 ...