Java学习笔记——Calendar类
Java中的日期类主要包括:Date类和Calendar类,本文中将对Calendar类进行讲解。
一、Calendar类的简介
Calendar类是一个抽象类,在实际使用时实现特定的子类的对象,只需要使用getInstance方法创建即可。
二、Calendar类中的常用字段
- YEAR 年份
- MONTH 月份
- DATE 日期
- WEEK_OF_YEAR 当前年中的第几个星期
- WEEK_OF_MONTH 当前月中的第几个星期
- DAY_OF_YEAR 一年中的第几天
- DAY_OF_MONTH 一个月中的第几天
- DAY_OF_WEEK 一个星期中的第几天
- HOUR 12小时制的小时
- HOUR_OF_DAY 24小时制的小时
- MINUTE 分钟
- SECOND 秒
- MILLISECOND 毫秒
代码实例1
获取时间get()
// 创建Calendar对象
Calendar cal = Calendar.getInstance();
System.out.println("当前时间: " + cal.getTime());/* 时间的获取 */
int year = cal.get(Calendar.YEAR); // 年份
int month = cal.get(Calendar.MONTH) + 1; // 月份(月份0代表1月)
int date = cal.get(Calendar.DATE); // 日期,年月日中的日,同DAY_OF_MONTH
int week_of_year = cal.get(Calendar.WEEK_OF_YEAR); // 第几个星期/年
int week_of_month = cal.get(Calendar.WEEK_OF_MONTH); // 第几个星期/月
int day_of_year = cal.get(Calendar.DAY_OF_YEAR); // 第几天/年
int day_of_month = cal.get(Calendar.DAY_OF_MONTH); // 第几天/月
int day_of_week = cal.get(Calendar.DAY_OF_WEEK); // 第几天/星期
int hour = cal.get(Calendar.HOUR); // 小时,12小时制
int hour_of_day = cal.get(Calendar.HOUR_OF_DAY); // 小时,24小时制
int minute = cal.get(Calendar.MINUTE); // 分钟
int second = cal.get(Calendar.SECOND); // 秒
int millisecond = cal.get(Calendar.MILLISECOND); // 毫秒System.out.println("年份,YEAR: " + year);
System.out.println("月份,MONTH: " + month);
System.out.println("日期,DATE: " + date);
System.out.println("第几个星期/年,WEEK_OF_YEAR: " + week_of_year);
System.out.println("第几个星期/月,WEEK_OF_MONTH: " + week_of_month);
System.out.println("第几天/年,DAY_OF_YEAR: " + day_of_year);
System.out.println("第几天/月,DAY_OF_MONTH: " + day_of_month);
System.out.println("第几天/星期,DAY_OF_WEEK: " + day_of_week);
System.out.println("小时,12小时制,HOUR: " + hour);
System.out.println("小时,24小时制,HOUR_OF_DAY: " + hour_of_day);
System.out.println("分钟,MINUTE: " + minute);
System.out.println("秒,SECOND: " + second);
System.out.println("毫秒,MILLISECOND: " + millisecond);
输出结果1
三、修改时间
- set()
- add():add方法会产生其他相关时间属性的连动变化
- roll():roll方法只是对相应时间属性的域内做变化
代码实例2
/* 时间的修改 */
// set()
System.out.println("修改前的年份,YEAR: " + cal.get(Calendar.YEAR));
cal.set(Calendar.YEAR, 2019); // 年份
System.out.println("修改后的年份,YEAR: " + cal.get(Calendar.YEAR));// add()
System.out.println("修改前的月(月份0代表1月),MONTH: " + cal.get(Calendar.MONTH));
cal.add(Calendar.MONTH, 4); // 月份(月份0代表1月)
System.out.println("修改后的月(月份0代表1月),MONTH: " + cal.get(Calendar.MONTH));// roll()
System.out.println("修改前的日期,Date: " + cal.get(Calendar.DATE));
cal.roll(Calendar.DATE, 10);
System.out.println("修改后的日期,Date: " + cal.get(Calendar.DATE));
输出结果2
四、add()和roll()的区别
- add()方法会产生其他相关时间属性的连动变化
- roll()只是对相应时间属性的域内做变化
代码实例3
// add() 和 roll() 的区别
System.out.println("修改前的日期: " + cal.getTime());
cal.add(Calendar.MONTH, 12); // 月份(月份0代表1月)
System.out.println("修改后的日期: " + cal.getTime());System.out.println("修改前的日期: " + cal.getTime());
cal.roll(Calendar.MONTH, 12); // 月份(月份0代表1月)
System.out.println("修改后的日期: " + cal.getTime());
输出结果3
add():修改前的日期:2019.9.12,添加了12个月后,日期改为:2020.9.12
roll():修改前的日期:2020.9.12,添加了12个月后,日期依旧是2020.9.12
五、代码
import java.util.Calendar;public class Day11 {public static void main(String[] args){// 创建Calendar对象Calendar cal = Calendar.getInstance();System.out.println("当前时间: " + cal.getTime());/* 时间的获取 */int year = cal.get(Calendar.YEAR); // 年份int month = cal.get(Calendar.MONTH) + 1; // 月份(月份0代表1月)int date = cal.get(Calendar.DATE); // 日期,年月日中的日,同DAY_OF_MONTHint week_of_year = cal.get(Calendar.WEEK_OF_YEAR); // 第几个星期/年int week_of_month = cal.get(Calendar.WEEK_OF_MONTH); // 第几个星期/月int day_of_year = cal.get(Calendar.DAY_OF_YEAR); // 第几天/年int day_of_month = cal.get(Calendar.DAY_OF_MONTH); // 第几天/月int day_of_week = cal.get(Calendar.DAY_OF_WEEK); // 第几天/星期int hour = cal.get(Calendar.HOUR); // 小时,12小时制int hour_of_day = cal.get(Calendar.HOUR_OF_DAY); // 小时,24小时制int minute = cal.get(Calendar.MINUTE); // 分钟int second = cal.get(Calendar.SECOND); // 秒int millisecond = cal.get(Calendar.MILLISECOND); // 毫秒System.out.println("年份,YEAR: " + year);System.out.println("月份,MONTH: " + month);System.out.println("日期,DATE: " + date);System.out.println("第几个星期/年,WEEK_OF_YEAR: " + week_of_year);System.out.println("第几个星期/月,WEEK_OF_MONTH: " + week_of_month);System.out.println("第几天/年,DAY_OF_YEAR: " + day_of_year);System.out.println("第几天/月,DAY_OF_MONTH: " + day_of_month);System.out.println("第几天/星期,DAY_OF_WEEK: " + day_of_week);System.out.println("小时,12小时制,HOUR: " + hour);System.out.println("小时,24小时制,HOUR_OF_DAY: " + hour_of_day);System.out.println("分钟,MINUTE: " + minute);System.out.println("秒,SECOND: " + second);System.out.println("毫秒,MILLISECOND: " + millisecond);/* 时间的修改 */// set()System.out.println("修改前的年份,YEAR: " + cal.get(Calendar.YEAR));cal.set(Calendar.YEAR, 2019); // 年份System.out.println("修改后的年份,YEAR: " + cal.get(Calendar.YEAR));// add()System.out.println("修改前的月(月份0代表1月),MONTH: " + cal.get(Calendar.MONTH));cal.add(Calendar.MONTH, 4); // 月份(月份0代表1月)System.out.println("修改后的月(月份0代表1月),MONTH: " + cal.get(Calendar.MONTH));// roll()System.out.println("修改前的日期,Date: " + cal.get(Calendar.DATE));cal.roll(Calendar.DATE, 10);System.out.println("修改后的日期,Date: " + cal.get(Calendar.DATE));// add() 和 roll() 的区别System.out.println("修改前的日期: " + cal.getTime());cal.add(Calendar.MONTH, 12); // 月份(月份0代表1月)System.out.println("修改后的日期: " + cal.getTime());System.out.println("修改前的日期: " + cal.getTime());cal.roll(Calendar.MONTH, 12); // 月份(月份0代表1月)System.out.println("修改后的日期: " + cal.getTime());}
}
Java学习笔记——Calendar类相关推荐
- JAVA学习笔记(类的学习)
JAVA学习笔记(类的学习) 类声明和类体 构造方法和对象创建 对象的引用和实体 成员变量 方法 方法重载 关键字this 包 import语句 访问权限 对象数组 反编译和文档生成器 JAR文件 1 ...
- Java学习笔记1——类和对象
面向对象 对象:万物皆对象 面向对象 类:模子,属性+方法,类是对象的类型,是具有相同属性和方法的一组对象的集合 对象属性:对象拥有的各种特征,"对象有什么" 对象方法:对象执行的 ...
- Java学习笔记_类和对象
·类:是一组相关属性和行为的集合,可以看成是一类事务的模板,使用事物的属性特征和行为特征来描述该类事物. ·属性:该事物的状态信息 ·行为:就是该事物能够做什么 ·对象:一类事物的具体体现,对象是类的 ...
- Head First Java学习笔记(2):类与对象
类 1.类是定义同一类所有对象的变量和方法的蓝图或原型. 2.实例变量的值由类的每个实例提供.当创建类的实例时,就创建了这种类型的一个对象,然后系统为类定义的实例变量分配内存.然后可以调用对象的实例方 ...
- Java学习笔记——常用类
字符串相关见string 包装类(Wrapper Class):lang包 将基本数据类型转换成对象 除char->Character,int->Integer,别的首字母大写 以Inte ...
- Java学习笔记——Number类
目录 一.xxxValue() 二.compareTo() 三.equals() 四.valueOf() 五.toString() 六.parsexxx() 七.代码 Java中的抽象类Numbe ...
- Java学习笔记----File类与IO流
第五章:File类与IO流 第一节:File类 1.1 概述 java.io.File类是文件和目录路径名的抽象表示,主要用于文件和目录的创建.查找和删除等操作 Java把电脑中的文件和文件夹(目录) ...
- Java学习笔记——实体类(ENTITY,VO,DTO,BO)
最近在写代码的时候,对于Entity.VO.DTO.BO的概念有些混淆,不太了解具体的用途以及作用,所以想梳理一下. 阿里巴巴Java开发手册中的分层领域模型规约: DO(Data Object):此 ...
- Java学习笔记——Scanner类
目录 一.Scanner类的简介 二.Scanner类的常用方法 (一)nextxxx() (二)hasNextxxx() 三.代码 一.Scanner类的简介 Scanner类主要用于扫描用户从控制 ...
最新文章
- windows下查看当前进程,杀掉进程等
- [ML]--梯度下降 GD 的理解和探究
- 论如何学习一门编程语言
- PL/Sql Dev 调试Oracle存储过程、触发器、函数
- html代码class=,css class是啥?
- quot;luasql.mysqlquot;_解决mysqlquot;Access denied for user 'root'@'IP地址'quot;问题 - - ITeye博客...
- Nginx upstream (一) 整体流程分析
- iView 一周年了,同时发布了 2.0 正式版,但这只是开始...
- 2017 Multi-University Training Contest - Team 7:1011. Kolakoski(模拟)
- Linux系统常用命令(一)
- 正确地使用“respectively“
- 巧妇居家过日子的妙招
- 智能驾驶是什么意思_新手们的“必备”功能!解读DiPilot智能驾驶辅助系统
- java 农历_java怎么取得农历的节日
- Vue面试题你学会了吗
- 计算机无线传输的标准,2015计算机三级网络技术考试重点:无线网络
- JAVA-File类与IO流
- wireshark数据包过滤
- AIoT人工智能物联网
- win10 设定计划任务时提示所指定的账户名称无效,如何解决?
热门文章
- HTML+CSS画圆、半圆、扇形、三角形
- 微软拼音输入法 2010 Beta 1 发布
- windows7 显卡驱动下载地址
- hot编码 字符one_几种实现one-hot编码的方式
- html5 player not found mac,为什么我安装的jw 提示Error loading player: HTML5 player not found...
- Go1.18 新特性:引入新的 netip 网络库
- 40岁遭遇中年危机:好不容易熬到公司中层,月薪一万五,却突然被辞退,怎么办?...
- 奖金不兑现,我该怎么办
- 《神奇宝贝》99%的90后都看过吧?Python让我成为了一名训练师!去吧,皮卡丘!
- 程序员去大公司面试,java分布式面试题