类 Calendar
简介
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的更多相关文章
- 日历类Calendar
在早期的JDK版本中,日期(Date)类附有两大功能:(1)允许用年.月.日.时.分.秒来解释日期:(2)允许对表示日期的字符串进行格式化和句法分析.在JDK1.1中提供了类Calendar来完成第一 ...
- Java 时间类-Calendar、Date、LocalDate/LocalTime
1.Date 类 java.util.Date是一个"万能接口",它包含日期.时间,还有毫秒数,如果你只想用java.util.Date存储日期,或者只存储时间,那么,只有你知道哪 ...
- 日期操作类--Calendar类
Calendar-API Calendar类 通过Date和DateFormat能够格式化并创建一个日期对象了,但是我们如何才能设置和获取日期数据的特定部分呢,比如说小时,日,或者分钟? 我们又如何在 ...
- 日期Data类,日历类Calendar
用于得到当前时间,和设置日期类数据 public void testDate() { // 创建一个日期对象 Date date = new Date(); /** * 从1900年1月1日 00:0 ...
- 操作日期时间类 Calendar类
使用Calendar类可以直接创建Calendar的子类GregorianCalendar 来直接实例化, GregorianCalendar calendar = new GregorianCal ...
- 类Calendar
/* * Calendar类概述及其方法 * * Calendar类概述 * Calendar类是一个抽象类,它为特定瞬间与一组诸如YEAR.MONTH.DAY_OF_MONTH.HOUR等 * 日历 ...
- Java 学习 时间格式化(SimpleDateFormat)与历法类(Calendar)用法详解
基于Android一些时间创建的基本概念 获取当前时间 方式一: Date date = new Date(); Log.e(TAG, "当前时间="+date); 结果: E/T ...
- Java—时间的原点 计算时间所使用的 Date类/DateFormat类/Calendar类
Date类 类 Date 表示特定的瞬间,精确到毫秒. 毫秒概念:1000毫秒=1秒 毫秒的0点: System.currentTimeMillis() 返回值long类型参数 用于获取当前日期的毫 ...
- java日历类Calendar简单使用
import java.util.Calendar; import java.util.TimeZone; public class Test1 { public static void main(S ...
随机推荐
- notepad++ 快速运行PHP代码
notepad++ 运行PHP代码 1. 按下快捷键 F52. 将输入如下命令 cmd /k D:\xampp\php\php.exe "$(FULL_CURRENT_PATH)" ...
- 用github展示自己的网页要做哪些准备(总结)
以前,如果想建立一个自己的网站,需要买域名,买存储空间,对个人来说维护成本比较高. 并且很多人只是想有一个网页展示自己的作品或者展示个人的简历. 在github越来越成熟的现在,直接使用github托 ...
- 第5章 简单的C程序设计——循环结构程序设计
5.1 为什么需要循环控制 前面介绍了程序中常用到的顺序结构和选择结构,但是只有这两种结构是不够的,还需要用到循环结构(或称重复结构).因为在程序所处理的问题中常常遇到需要重复处理的问题. 循环结构和 ...
- Python基础(random模块)
random 常用的方法: #Author : Kelvin #Date : 2019/1/6 15:33 import random print(random.random()) #产生0-1之间的 ...
- 【工利其器】必会工具之(一)Source Insight篇
前言 “Source Insight(以下简称SI)是世界上最好的编辑器”,说这句话不知道会不会出门被打呢?-_- 中国古话说得好,“文无第一,武无第二”,所以不敢说SI是最好的,但是 ...
- [macOS开发.NET Core] 开篇 & 抉择 & 先利其器
一直以来MacBook是大多数开发者的首选,无论是macOS的便利性,还是MBP的外观,更或者是为了装13,我一直认为一个开发者必须得拥有一部MBP.虽然最后的因素是大多数的. 终于在我的努力下说服下 ...
- 【面试】足够应付面试的Spring事务源码阅读梳理(建议珍藏)
Starting from a joke 问:把大象放冰箱里,分几步? 答:三步啊,第一.把冰箱门打开,第二.把大象放进去,第三.把冰箱门带上. 问:实现Spring事务,分几步? 答:三步啊,第一. ...
- 取之有道——巧用Root权限 启动其他APP中的Activity
这次博主来分享一个很巧妙的办法来启动其他APP中Activity的方法. 首先说一下这样做的目的:最近博主在攻克一个技术难点,就是搞定某些三方系统中,对于应用权限的限制.为此给出用户指导,引导用户启动 ...
- Java笔记(day9~day10)
继承: 好处:1.提高代码复用性: 2.让类之间产生关系,给多态提供了前提: 父类.子类 Java中支持单继承,不直接支持多继承,但对C++的多继承进行了改良 单继承:一个子类只能有一个直接复类 ...
- Java建造者模式
建造者模式 建造者模式适用场景: 建造一个复杂的对象适用,将构建对象的过程分开,每个类单独构造对象的一部分,最后组装起来,返回我们需要的对象. 下面的例子主要讲解构造一个飞船 Demo: //要获得的 ...