JAVA中APIcalendar的用法,Java Calendar日历类原理及使用方法

2023-11-19

这篇文章主要介绍了Java Calendar日历类原理及使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

java.util.Calendar 是日历类,在Date后出现,替换掉了许多Date的方法。该类将所有可能用到的时间信息封装为静态成员变量,方便获取。日历类就是方便获取各个时间属性的。Calendar类无法直接创建对象使用,里边有一个静态方法getInstance(),该方法返回了Calendar类的子类对象。Calendar类中提供很多成员常量,代表给定的日历字段:具体如下图

1

获取方式

Calendar为抽象类,由于语言敏感性,Calendar类在创建对象时并非直接创建,而是通过静态方法创建,返回子类对象,如下:

Calendar静态方法

public static Calendar getInstance() :使用默认时区和语言环境获得一个日历

//获取Calendar类的子类对象

Calendar cal = Calendar.getInstance();

常用方法

根据Calendar类的API文档,常用方法有:

public int get(int field) :返回给定日历字段的值。

package demo04;

import java.util.Calendar;

public class Demo01 {

public static void main(String[] args) {

//通过静态方法创建,返回Calendar子类对象

Calendar instance = Calendar.getInstance();

/*

public int get(int field):返回给定日历字段的值。

参数:传递指定的日历字段(YEAR,MONTH...)

返回值:日历字段代表的具体的值

*/

System.out.print("现在是"+instance.get(Calendar.YEAR)+"年");

//在Calendar类中,月份的表示是以0-11代表1-12月。

System.out.print(instance.get(Calendar.MONTH)+"月");

System.out.println(instance.get(Calendar.DAY_OF_MONTH)+"日");

}

}

代码执行后的结果

2

public void set(int field, int value) :将给定的日历字段设置为给定值。

package demo04;

import java.util.Calendar;

public class Demo02 {

/*

public void set(int field, int value):将给定的日历字段设置为给定值。

参数:

int field:传递指定的日历字段(YEAR,MONTH...)

int value:给指定字段设置的值

*/

public static void main(String[] args) {

//使用getInstance方法获取Calendar对象

Calendar c = Calendar.getInstance();

//设置年为9999

c.set(Calendar.YEAR, 9999);

//设置月为9月

c.set(Calendar.MONTH, 9);

//设置日9日

c.set(Calendar.DATE, 9);

//获取设置后的日期

System.out.println("现在的日期是" + c.get(Calendar.YEAR) + "年" + c.get(Calendar.MONTH) + "月" + c.get(Calendar.DAY_OF_MONTH) + "日");

//同时设置年月日,可以使用set的重载方法

c.set(8888, 8, 8);

System.out.println("现在的日期是" + c.get(Calendar.YEAR) + "年" + c.get(Calendar.MONTH) + "月" + c.get(Calendar.DAY_OF_MONTH) + "日");

}

}

代码执行后的结果

3

public abstract void add(int field, int amount) :根据日历的规则,为给定的日历字段添加或减去指定的时间量。

package demo04;

import java.util.Calendar;

public class Demo03 {

/*

public abstract void add(int field, int amount):根据日历的规则,为给定的日历字段添加或减去指定的时间量。

把指定的字段增加/减少指定的值

参数:

int field:传递指定的日历字段(YEAR,MONTH...)

int amount:增加/减少指定的值

正数:增加

负数:减少

*/

public static void main(String[] args) {

//使用getInstance方法获取Calendar对象

Calendar c = Calendar.getInstance();

//获取当前的日期

System.out.println("现在的日期是" + c.get(Calendar.YEAR) + "年" + c.get(Calendar.MONTH) + "月" + c.get(Calendar.DAY_OF_MONTH) + "日");

//把年增加2年

c.add(Calendar.YEAR, 2);

//把月份减少3个月

c.add(Calendar.MONTH, -3);

//获取设置后的日期

System.out.println("现在的日期是" + c.get(Calendar.YEAR) + "年" + c.get(Calendar.MONTH) + "月" + c.get(Calendar.DAY_OF_MONTH) + "日");

}

}

代码执行后的结果

4

public Date getTime() :返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象。

package demo04;

import java.util.Calendar;

import java.util.Date;

public class Demo04 {

/*

public Date getTime():返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象。

把日历对象,转换为日期对象

*/

public static void main(String[] args) {

//使用getInstance方法获取Calendar对象

Calendar c = Calendar.getInstance();

//日历对象--->日期对象

Date date = c.getTime();

System.out.println(date);

}

}

代码执行后的结果

5

注意事项

西方星期的开始为周日,中国为周一。

在Calendar类中,月份的表示是以0-11代表1-2月。

日期是有大小关系的,时间靠后,时间越大。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持聚米学院。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JAVA中APIcalendar的用法,Java Calendar日历类原理及使用方法 的相关文章

  • Transformer 综述 & Transformers in Vision: A Survey

    声明 因本人课题只涉及图像分类和目标检测 且此综述对这两个领域调查的比较多 所以此文章只对图像分类和目标检测进行精读 若是对 中的论文感兴趣 到原论文中查阅参考文献即可 下图是综述内容涉及的计算机视觉十大领域 图像识别 目标检测 语义和实例
  • Linux命令-推荐

    大侠必备 杀进程 命令 ps ef grep java 先查java进程ID kill 9 PID 生产环境谨慎使用 kill killall pkill命令的区别 kill 通过pid来杀死进程 killall killall 参数 进程
  • JVM参数之GC日志配置

    说到 Java 虚拟机 不得不提的就是 Java 虚拟机的 GC Garbage Collection 日志 而对于 GC 日志 我们不仅要学会看懂 而且要学会如何设置对应的 GC 日志参数 为了能够更直观地显示出每个参数的作用 我们将以下
  • python case when用法_case when

    case when的表达式形式 1 简单Case函数 CASE sex WHEN 1 THEN 男 WHEN 2 THEN 女 ELSE 其他 END 2 Case搜索函数 CASE WHEN sex 1 THEN 男 WHEN sex 2
  • 【asm基础】nasm和masm的一些区别

    差异点说明 1 nasm是区分大小写的 2 nasm中访问内存需要使用 将内存地址括起来 例如 bar equ 2 mov rax bar mov rax bar 这个才是存储地址中内容的操作 3 nasm不存储类型信息 所以也不能使用MO
  • Vue组件按需引入时v-if和v-show的区别

    普通加载 在父组件中先import子组件 然后在components模块中注册子组件 在进 入页面时 会随着加载当前页面的js文件就加载子组件的内容 子组件的内容和父组件的内容在同一个js文件 按需加载 子组件显示的时候 才会去加载子组件的
  • fastcgi 环境变量例子

    例如请求的url http 172 28 250 184 8099 aa php var ccccc value bbbbbb 前两个字节分别代表 变量名长度 和 变量值长度 0x0f0x0fSCRIPT FILENAME scripts
  • [转][SoC][DV]关于加快验证收敛的一些方法

    关于加快验证收敛的一些方法 一 自动生成uvm验证环境 uvm gen 二 自动生成agent UVC VIP agent gen 三 模块化设计Clock以及reset的产生 clock agent 四 后台磁盘管理并且定期清理log r
  • MySQL之分布式事务

    写在前面 当数据库进行了分库分表 之后为了保证数据的一致性 不可变的就需要引入跨数据的事务解决方案 这种解决方案我们叫做分布式事务 本文就一起来看下分布式事务相关的内容 在8 0 版本上学习 1 实战 为了能够更好的理解理论知识 我们先来简
  • 线上系统性能太差,我手写了字符串切割函数,性能提升10倍以上

    V xin ruyuanhadeng获得600 页原创精品文章汇总PDF 目录 工作中常用的 split 切割字符串效率高吗 JDK 提供字符串切割工具类 StringTokenizer 手把手带你实现一个更高效的字符串切割工具类 总结 今
  • 好的习惯

    从网上看到的一篇外文文章的翻译 感觉挺不错 分享一下 第三章 习惯一 积极主动 个人愿景的原则 人性本质是主动而非被动的 不仅能消极选择反应 更能主动创造有利环境 采取主动并不表示要强求 惹人厌或具侵略性 只是不逃避为自己开创前途的责任 最
  • Windows环境下Apache与Tomcat共存

    准备工作 1 Apache 2 2 4 下载地址 http cztele1 skycn com down apache 2 2 4 win32 x86 no ssl zip 2 Tomcat 6 0 16 下载地址 http apache
  • 计算机网络安全技术学习总结

    计算机网络安全C 1 绪论 网络安全的定义 模型 攻击手段 攻击方式 安全服务 安全机制 特定安全机制 普遍的安全机制 认识Internet上的严峻的安全形势并深入分析其根源 造成Internet安全问题的主要原因 1系统脆弱性 2自然灾害
  • 尚硅谷CSS选择器练习之餐厅练习

    此笔记来自于跟尚硅谷老师学习 此篇是对CSS选择器的总结以及视频中的P37的餐厅练习自己做的答案 自己所写 用于自我复习 P37尚硅谷 餐厅练习 https flukeout github io 目录 css选择器 1 Select the
  • 解决 kali换源之后签名无效

    报错问题 apt get update 报错 更新扩展知识 kali更新源 终端输入 vi etc apt sources list 中科大 deb http mirrors ustc edu cn kali kali rolling ma
  • C语言函数大全-- s 开头的函数(4)

    s 开头的函数 4 1 strdup 1 1 函数说明 1 2 演示示例 1 3 运行结果 2 stricmp 2 1 函数说明 2 2 演示示例 2 3 运行结果 3 strerror 3 1 函数说明 3 2 演示示例 3 3 运行结果
  • 时间序列之协整检验(3)

    协整检验 1 协整检验 cointegration test 2 常用的协整检验 3 研究变量之间的协整关系 对研究经济问题的定量分析有着重要的意义 5 用Eviews代码进行协整检验 4 用Python代码进行协整检验 1 协整检验 co
  • 使用扩展卡尔曼滤波(EKF)融合激光雷达和雷达数据(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 大多数自动驾驶汽车都配备了激光雷达和雷达
  • Linus谈优秀程序员的三种品质

    转自 http blog dyngr com blog 2013 09 26 junio c hamano interview 引言 今天我们的嘉宾 是分布式版本管理系统Git的主要维护者 同时也是 入门Git 一书的作者 滨野纯先生 而这

随机推荐

  • 某网页挂马分析

    前记 这是很早之前分析的网页挂马案例 我当时分析的也很细致 最近在整理文档时发现了它 这篇文章正好能展示出病毒从网页挂马到本机运行的完整流程 感觉还是有分享的价值的 20XX年X月XX日 XXX发现 XXX网 http www XXXXX
  • MySQL is running but PID file could not be found问题处理

    Linux中启动mysql时出现MySQL is running but PID file could not be found错误 处理方法 查询到mysql中data目录下的mysql bin index文件 find name mys
  • Spring boot运行原理-自定义自动配置类

    在前面SpringBoot的文章中介绍了SpringBoot的基本配置 今天我们将给大家讲一讲SpringBoot的运行原理 然后根据原理我们自定义一个starter pom 本章对于后续继续学习SpringBoot至关重要 了解Sprin
  • 文件共享服务器onedrive,如何共享OneDrive文件和文件夹

    仅有一点额外的存储空间就意味着要购买更大的硬盘或在库存中添加外部硬盘的日子已经一去不复返了 如今 云存储已成为必经之路 它似乎不安全 但它以更快的速度 更安全的方式发展 并且总体而言 逐年提高 而且价格相对较低 出色的云存储服务的一个很好的
  • 《数据结构与算法》期末考试

    数据结构与算法 期末考试 判断题 单选题 填空题 函数题 主观题 判断题 已知一棵二叉树的先序遍历结果是ABC 则CAB不可能是中序遍历结果 T 所谓 循环队列 是指用单向循环链表或者循环数组表示的队列 F 只有当局部最优跟全局最优解一致的
  • odoo 学习 - 权限编辑

    权限编辑 编辑security ir model access csv id name model id id group id id perm read perm write perm create perm unlink access
  • 常用电子元器件简介

    一 电阻器 电阻器 一般情况下也称电阻 是一种阻碍电流在电路中流动的线性元件 也是组成电子电路的主要元件之一 1 电阻器的作用及电路图形符号 1 电阻器的作用 电阻器主要用于控制电路中的电压和电流 除了具有降压 分压 限流和分流作用外 还具
  • VS2019实用调试技巧

    VS2019实用调试技巧 1 debug和release的区别 2 调试 1 调试最常使用的几个快捷键 2 用监视窗口查看临时变量的值 3 查看内存信息 4 查看调用堆栈 5 查看汇编信息 6 查看寄存器信息 3 如何写出易于调试 好的代码
  • maven学习总结系列

    maven学习总结系列 最近工作中需要一些maven的知识 也是想正规的学习下maven的知识点 所以才有了这次的总结 希望自己的总结能够帮助到大家 另外 我只会根据我工作中需要到的知识点进行总结 不需要的 或者我觉得没啥用的 我就不写了
  • Aligning Large Language Models with Human: A Survey

    本文也是LLM相关的综述文章 针对 Aligning Large Language Models with Human A Survey 的翻译 对齐人类与大语言模型 综述 摘要 1 引言 2 对齐数据收集 2 1 来自人类的指令 2 1
  • 竞赛真题:约瑟夫环

    Hello 这是我的新专辑 这个专辑中是竞赛真题 所有真题的解将会用Python C C Java JS和Go几种语言给大家实现 现在 开始我们的第一个竞赛题目 约瑟夫环 目录 题目内容 题目分析 题目思路 Python代码 C 代码 C代
  • Golang template 加载外部样式 问题

    前端形如 后端形如 http Handle css http FileServer http Dir static 报错形如 Refused to apply style from http localhost 9999 css mysty
  • 对象锁和类锁的个人理解

    一 对象锁 1 解释 对象锁 顾名思义锁的是对象实例 但程序中同一个类可以有多个实例化对象 所以对象锁只能锁住同一个实例化对象 再两个或多个实例化对象之间不起作用 2 使用方法 1 锁住实体里的非静态变量 synchronized 变量名
  • Error Domain=NSCocoaErrorDomain Code=3840 “Invalid value around character 4104.

    使用Alamofire发了一个GET请求 出现了如下错误 responseSerializationFailed reason Alamofire AFError ResponseSerializationFailureReason jso
  • 专科程序员与本科程序员的区别大吗?

    不管专科还是本科 我们先说说校园内现状 老师自己的水平是否足够 首先就是老师是否达到了一定的水平 其次就是老师是否有更多的精力教学生 水平好的老师忙着接项目发表论文 有没有更多的时间放在学生身上 再说学生 真正学习的时间有多少 参加学生会
  • 边坡安全监测系统的主要内容

    边坡安全监测系统是边坡安全掌握及其支护结构维护决策系统的支撑条件之一 建立结构健康监测系统的目的在于确定边坡结构的安全性 监测支护结构的承载能力 运营状态和耐久性能等 对边坡稳定性进行有效监控 修正在施工过程中各种影响支护结构的参数误差对支
  • Unet实现眼底图像血管分割(三)

    1 retinaNN training py 模型Model的compile方法 model compile self optimizer loss metrics None loss weights None sample weight
  • 如何在Excel中制作曲线图

    When you create a line graph in Excel the lines are angled and have hard edges by default You can easily change this to
  • 电脑上安装多个JDK版本时如何自由切换

    文章目录 前言 一 安装JDK 二 设置系统变量 2 1 设置JAVA HOME 2 1 1 添加JAVA HOME VERSION 2 2 设置Path 2 2 1 添加Path 三 验证结果 前言 使用java的过程中 难免会遇上JDK
  • JAVA中APIcalendar的用法,Java Calendar日历类原理及使用方法

    这篇文章主要介绍了Java Calendar日历类原理及使用方法 文中通过示例代码介绍的非常详细 对大家的学习或者工作具有一定的参考学习价值 需要的朋友可以参考下 java util Calendar 是日历类 在Date后出现 替换掉了许