Day34.2:Calendar详解
Calendar
1.1 概述
Date类中很多方法被Calendar所取代,Calendar类提供了获取和设置各种日历的方法。
1.2 方法
构造方法:Calendar类的构造器被protected修饰,外界不能直接使用!
其他方法:
方法名 | 说明 |
---|---|
static Calendar getInstance() | 类静态方法;返回一个当前区域时间;(通过此方法构造Calendar对象) |
final void set(int year, int month, int date, int hourOfDay, int minute) | 修改当前的时间信息 |
int get(int field); | 返回当前时间的某一项信息:年:1;星期几:7;......不同数字代表不同的信息 |
void setTime(int field,int) | 将Date设置为当前日历时间 Date——Calendar |
Date getTime() | 将当前对象时间转为Date对象并返回 Calendar——Date |
void add(int field,int) | 给当前对象时间某一项信息增加或减少时间量 |
getActualMaximum(int field,int) | 获取当前对象时间具体某一项信息的最大值;比如1月的最大值为31 |
将上述方法在代码中进行演示
public class Test{
public static void main(String[] args){
//通过Calendar类中的静态方法创建Calendar对象
System.out.println("=========getInstance========");
Calendar s1=Calendar.getInstance();
//打印时间
System.out.println("============getTime=========");
System.out.println(s1);//此方法打印出来的并不是我们能方便观察的时间
System.out.println(s1.getTime().toLocaleString());//通过调用getTime方法返回一个Date对象,然后再调用Date对象的toLocaleString方法来打印
//获取时间信息
System.out.println("==============get==========");
System.out.println(s1.get(1));
//上下两行代码等价
System.out.println(s1.get(Calendar.YEAR));//Calendar 提供了很多静态常量,year=1,month=2
//修改时间
System.out.println("============set=============");
s1.set(2022,11,1,20,30);//final void set(int year, int month, int date, int hourOfDay, int minute)分别加入参数即可
//这里需要注意一下,月份是从0开始的,也就是说12月份在代码里面是11
System.out.println(s1.getTime().toLocaleString());
//增加或减少时间的某一信息
System.out.println("============add=============");
s1.add(Calendar.YEAR,1);//给调用该方法的时间的年这一项增加了1
System.out.println(s1.getTime().toLocaleString());
//获取时间某一项信息的最大/小值
System.out.println("============getAutualMaximum=============");
System.out.println(s1.getAutualMaximum(Calendar.DAY_OF_MONTH));//获取当前对象时间的月份里面最大的一天是多少
System.out.println(s1.getAutualMinimum(Calendar.DAY_OF_MONTH));//获取当前对象时间的月份里面最小的一天是多少
}
}
=========getInstance========
============getTime=========
java.util.GregorianCalendar[time=1670421166199,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=31,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2022,MONTH=11,WEEK_OF_YEAR=50,WEEK_OF_MONTH=2,DAY_OF_MONTH=7,DAY_OF_YEAR=341,DAY_OF_WEEK=4,DAY_OF_WEEK_IN_MONTH=1,AM_PM=1,HOUR=9,HOUR_OF_DAY=21,MINUTE=52,SECOND=46,MILLISECOND=199,ZONE_OFFSET=28800000,DST_OFFSET=0]
2022-12-7 21:52:46
==============get==========
2022
2022
============set=============
2022-12-1 20:30:46
============add=============
2023-12-1 20:30:46
============getAutualMaximum=============
31
1
Process finished with exit code 0
Day34.2:Calendar详解的更多相关文章
- Java Calendar详解
网上看到的一篇,码一下.侵删 一:字段和方法的信息 YEAR 字段: public static final int YEAR ; 指示年的 get 和 set 的字段数字.这是一个特定于日历的值: ...
- 【Java入门提高篇】Day34 Java容器类详解(十五)WeakHashMap详解
源码详解系列均基于JDK8进行解析 说明 在Java容器详解系列文章的最后,介绍一个相对特殊的成员:WeakHashMap,从名字可以看出它是一个 Map.它的使用上跟HashMap并没有什么区别,所 ...
- JAVA Calendar详解(转)
转自:http://blog.csdn.net/zerogotosum/article/details/1671314 (在文章的最后,将会介绍Date类,如果有兴趣,可以直接翻到最后去阅读) 究竟什 ...
- Calendar详解
(在文章的最后,将会介绍Date类,如果有兴趣,可以直接翻到最后去阅读) 究竟什么是一个 Calendar 呢?中文的翻译就是日历,那我们立刻可以想到我们生活中有阳(公)历.阴(农)历之分.它们的区别 ...
- Java 字符串格式化详解
Java 字符串格式化详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 文中如有纰漏,欢迎大家留言指出. 在 Java 的 String 类中,可以使用 format() 方法 ...
- linux查看端口及端口详解
今天现场查看了TCP端口的占用情况,如下图 红色部分是IP,现场那边问我是不是我的程序占用了tcp的链接,,我远程登陆现场查看了一下,这种类型的tcp链接占用了400多个,,后边查了一下资料,说E ...
- spring定时任务详解(@Scheduled注解)( 转 李秀才的博客 )
在springMVC里使用spring的定时任务非常的简单,如下: (一)在xml里加入task的命名空间 xmlns:task="http://www.springframework.or ...
- quartz配置文件详解
quartz配置文件详解(转载) quartz学习总结: 一.关于job: 用Quartz的行话讲,作业是一个执行任务的简单Java类.任务可以是任何Java代码.只需你实现org.qu ...
- SQL Server时间粒度系列----第8节位运算以及设置日历数据表节假日标志详解
本文目录列表: 1.位运算 2.设置日历数据表节假日标志 3.总结语 4.参考清单列表 位运算 SQL Server支持的按位运算符有三个,分别为:按位与(&).按位或(|).按位异或 ...
- Dialog详解(包括进度条、PopupWindow、自定义view、自定义样式的对话框)
Dialog详解(包括进度条.PopupWindow.自定义view.自定义样式的对话框) Android中提供了多种对话框,在实际应用中我们可能会需要修改这些已有的对话框.本实例就是从实际出发, ...
随机推荐
- ConfigMap使用说明
ConfigMap概述 ConfigMap供容器使用的典型用法如下. (1)生成为容器内的环境变量. (2)设置容器启动命令的启动参数(需设置为环境变量). (3)以Volume的形式挂载为容器内部的 ...
- 报时机器人的rasa shell执行流程分析
本文以报时机器人为载体,介绍了报时机器人的对话能力范围.配置文件功能和训练和运行命令,重点介绍了rasa shell命令启动后的程序执行过程. 一.报时机器人项目结构 1.对话能力范围 (1)能够 ...
- 文本数据挖掘---课后作业shuffle函数洗牌C++
题目: 代码如下:#include <iostream> #include <random> #include <algorithm> #include <v ...
- TTD 专题 (第一篇):C# 那些短命线程都在干什么?
一:背景 1.讲故事 在分析的众多dump中,经常会遇到各种奇葩的问题,仅通过dump这种快照形式还是有很多问题搞不定,而通过 perfview 这种粒度又太粗,很难找到问题之所在,真的很头疼,比如本 ...
- python+request+pymysql+pytest数据驱动
一.pymysql简单使用 1.安装mysql 下载地址:https://www.mysql.com/,安装教程这里不做介绍了,网上一大推. 2.安装pymysql库 在Terminal终端输入:pi ...
- Git的使用以及常用命令(详解)
一. 版本控制工具 什么是版本控制系统? 版本控制系统(Version Control System):是一种记录一个或若干文件内容变化,以便将来查阅特定版 本修订情况的系统.版本控制系统不仅可以应用 ...
- kali配置
IP设置 配置文件:/etc/networking/interface 临时IP ifconfig eth0 192.168.31.111/24 永久IP auto eth0 #iface eth0 ...
- .NET周报【10月第2期 2022-10-17】
主题 宣布 .NET 7 发布候选版本 2 - .NET Blog https://devblogs.microsoft.com/dotnet/announcing-dotnet-7-rc-2/ .N ...
- 在mybatis中#{}和${}的区别
文章目录 1.第一个#{} 2.第二个${} 3.区别 1.第一个#{} 解释: 使用#{}格式的语法在mybatis中使用preparement语句来安全的设置值 PreparedStatement ...
- 驱动开发:内核监控Register注册表回调
在笔者前一篇文章<驱动开发:内核枚举Registry注册表回调>中实现了对注册表的枚举,本章将实现对注册表的监控,不同于32位系统在64位系统中,微软为我们提供了两个针对注册表的专用内核监 ...