Calendar类

Calendar:它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。

一、构造方法

protected Calendar() :由于修饰符是protected,所以无法直接创建该对象。需要通过别的途径生成该对象。

二、成员方法

Calendar类的成员方法

static Calendar getInstance()

使用默认时区和区域设置获取日历。通过该方法生成Calendar对象。如下所示:Calendar cr=Calendar.getInstance();
public void set(int year,int month,int date,int hourofday,int minute,int second) 设置日历的年、月、日、时、分、秒。
public int get(int field) 返回给定日历字段的值。所谓字段就是年、月、日等等。
public void setTime(Date date) 使用给定的Date设置此日历的时间。Date------Calendar
public Date getTime() 返回一个Date表示此日历的时间。Calendar-----Date
abstract void add(int field,int amount) 按照日历的规则,给指定字段添加或减少时间量。
public long getTimeInMillies() 以毫秒为单位返回该日历的时间值。

三、日历字段

日历字段包含以下两种:一种是表示时间的单位,例如年、月、日等等。另一种是具体的日期,例如一月、二月、三月、一日、二日、三日、一点钟、两点钟等等具体的时间。前一种一般时获取的时候使用,后一种一般判断的时候使用。

时间单位字段:

YEAR MINUTE

DAY_OF_WEEK_IN_MONTH

某月中第几周
MONTH SECOND/MILLISECOND 秒/毫秒 WEEK_OF_MONTH 日历式的第几周
DATE  DAY_OF_MONTH

和DATE一样

DAY_OF_YEAR 一年的第多少天
HOUR_OF_DAY DAY_OF_WEEK 周几 WEEK_OF_YEAR 一年的第多少周

具体时间字段:这里就不累赘了,从一月到十二月、从周一到周五

特殊的:AM_PM 返回1则表示是下午,返回0表示上午。

四、例子

public class CalendarDemo {public static void main(String[] args) {// 其日历字段已由当前日期和时间初始化:Calendar rightNow = Calendar.getInstance(); // 子类对象// 获取年int year = rightNow.get(Calendar.YEAR);// 获取月int month = rightNow.get(Calendar.MONTH);// 获取日int date = rightNow.get(Calendar.DATE);//获取几点int hour=rightNow.get(Calendar.HOUR_OF_DAY);//获取上午下午int moa=rightNow.get(Calendar.AM_PM);if(moa==1)System.out.println("下午");elseSystem.out.println("上午");System.out.println(year + "年" + (month + 1) + "月" + date + "日"+hour+"时");rightNow.add(Calendar.YEAR,5);rightNow.add(Calendar.DATE, -10);int year1 = rightNow.get(Calendar.YEAR);int date1 = rightNow.get(Calendar.DATE);System.out.println(year1 + "年" + (month + 1) + "月" + date1 + "日"+hour+"时");}
}

注意:month是从0开始的,而月份是从1开始的,所以month需要加一。

JAVA常见类(十二)Calendar类相关推荐

  1. Java设计模式(十二) 策略模式

    策略模式介绍 策略模式定义 策略模式(Strategy Pattern),将各种算法封装到具体的类中,作为一个抽象策略类的子类,使得它们可以互换.客户端可以自行决定使用哪种算法. 策略模式类图 策略模 ...

  2. 疯狂JAVA讲义---第十二章:Swing编程(五)进度条和滑动条

    http://blog.csdn.net/terryzero/article/details/3797782 疯狂JAVA讲义---第十二章:Swing编程(五)进度条和滑动条 标签: swing编程 ...

  3. Java常见应用——Json,二维码生成,加密解密应用

    Java常见应用--Json,二维码生成,加密解密应用 一.JSON 1.下载json架包,json官网:json.org 2.将Map/JavaBean/String转化成json对象,只需要使用J ...

  4. java -Date、DateFormat、Calendar类

    Date类概述 类 Date 表示特定的瞬间,精确到毫秒. 毫秒概念:1000毫秒=1秒 毫秒的0点: System.currentTimeMillis()  相当于Date d = new Date ...

  5. C++ Primer Plus学习(十二)——类继承(is-a)

    类继承(is-a) 基类和派生类 多态公有继承 静态联编和动态联编 虚函数 访问控制:protected 抽象基类 继承和动态内存分配 总结 基类和派生类 派生类构造函数 创建派生类对象时,程序首先调 ...

  6. java 自然周_java 使用Calendar类计算每月有多少自然周,并输出每周的开始和结束日期...

    思路:首先是获取该月的实际天数,然后从1号遍历直至该月最后一天,利用Calendar类找出该日是一周中的第几天, (1)若该日是周日,则视为一周结束,并用该日期减去6找到该周的开始日期,若相减结果小于 ...

  7. 纯干货!Java后端开发十二条经验分享!

    前言 本文是博主从事后端开发以来,对公司.个人项目的经验总结,包含代码编写.功能推荐.第三方库使用及优雅配置等,希望大家看到都能有所收获 一. 优雅的进行线程池异常处理 在Java开发中,线程池的使用 ...

  8. java se系列(十二)集合

    1.集合 1.1.什么是集合 存储对象的容器,面向对象语言对事物的体现,都是以对象的形式来体现的,所以为了方便对多个对象的操作,存储对象,集合是存储对象最常用的一种方式.集合的出现就是为了持有对象.集 ...

  9. Java笔记(十二) 文件基础技术

    文件基础技术 一.文件概述 一)基本概念 1.文件的分类: 1)文本文件:文件中每个二进制字节都是某个可打印字符的一部分.如.java文件 2)二进制文件:文件中每个二进制字节不一定用来表示字符,也可 ...

  10. 反射、Lambda表达式(Java学习笔记十二)

    文章目录 反射 Class 类 创建运行时类的对象 获取运行时类的完整结构 调用运行时类的指定结构 调用指定方法 调用指定属性 关于setAccessible方法的使用: 动态代理 Lambda表达式 ...

最新文章

  1. 【Python爬虫学习笔记6】JSON文件存储
  2. linux查文件名称唯美,第二章、Linux常用命令
  3. 大数据揭示90后爱情观,“有钱”只能排最后
  4. 《Reids 设计与实现》第十一章 服务器
  5. 斯坦福大学的Gss Audio Codec 调试分析
  6. 刷机-升级到3.90M33-3的方法
  7. 2018 ICPC SouthEastern European 【Fishermen】
  8. (C语言)不变初心数 (15 分)---pta
  9. 简单使用Linux工业平板(一)
  10. 农业农村部回应长江刀鱼将正式禁捕:已严重过度捕捞
  11. android远程控制(三)----通过后台服务实现系统点击事件模拟
  12. Leetcode 685. 冗余连接 II Redundant Connection II
  13. 两个不同局域网电脑如何互相访问
  14. 高二会考计算机分数,会考成绩abcd各是多少分 会考成绩对高考有影响吗
  15. 打印机连接不上打印设备提示0x0000011b 正式解决方案无需卸载补丁
  16. 优启通桌面只有一个计算机,优启通图文详细使用教程,优启通使用教程
  17. Unity 3D专栏 U3D预制包,很好很强大 (二)
  18. 群消息已读回执(这个屌),究竟是推还是拉?
  19. 华为OD机试真题 C++ 实现【硬件产品销售方案】【2022.11 Q4 新题】
  20. 搜索引擎中同义词的挖掘及使用

热门文章

  1. 大数据----2.基础环境搭建
  2. Linux入门到精通
  3. CPU Cycle(CPU 周期)、Instruction Cycle(指令周期)、Clock Cycle(时钟周期)
  4. 第七章租赁法律与合同
  5. Android 监听wifi总结
  6. 使用cmd命令窗口打开对应的应用程序
  7. Duplicate Net Names Wire AVCC
  8. Learning to Rank(以下简称L2R)
  9. fstream ,ifstream,ofstream的用法详解
  10. 利用ChatGPT学习生物信息数据分析