【Java-----日期类(三)之Calendar类详解】

Calendar类概述

Calendar类是Java.util包中提供的一个抽象类,该类从JDK1.1开始出现,作为Date类的替代方案,Calendar类中包含了对不同国家地区日历的处理,Calendar类常见的子类为:java.util.GregorianCanlendar;获取Calendar对象一般使用类中提供的静态方法:getInstance(),该方法返回了Calendar的子类对象

Calendar类中的静态常量

Calendar.YEAR //表示年份

Calendar.MONTH //表示月份

Calendar.DATE //表示当前时间为多少号(日历式的多少号)

Calendar.HOUR //表示小时(12小时制)

Calendar.HOUR_OF_DAY //表示小时(24小时制)

Calendar.MINUTE //表示分钟数

Calendar.SECOND //表示秒数

Calendar.MILLENSECOND //表示毫秒数

Calendar.WEEK_OF_MONTH //当前时间是所在当前月的第几个星期(日历式的第几周)

Calendar.WEEK_OF_YEAR //当前时间是所在当前年的第几个星期

Calendar.DAY_OF_WEEK_IN_MONTH //当前时间是所在当前月的第几个星期,以月份天数为标准,一个月的1号为第一周,8号为第二周

Calendar.DAY_OF_WEEK //一周七天中,当前时间是一周中的第几天

Calendar.DAY_OF_YEAR //表示一年中的第几天

Calendar.DAY_OF_MONTH //表示一个月中的第几天,结果等同于Calendar.DATE

Calendar.AM_PM //表示是上午还是下午

Calendar.SUNDAY //周日

Calendar.MONDAY //周一

Calendar.TUESDAY //周二

Calendar.WEDNSDAY //周三

Calendar.THURSDAY //周四

Calendar.FRIDAY //周五
  
Calendar.SATURDAY //周六

使用具体代码运行如下:

Calendar c= Calendar.getInstance();
int year=c.get(Calendar.YEAR);
int month=c.get(Calendar.MONTH)+1;//此处加1因为Calendar中月份是从0开始计的
int date=c.get(Calendar.DATE);
System.out.println(year+"年"+month+"月"+date+"日");
//输出:2022年10月15日

Calendar中的常用方法

1  public static Calendar getInstance():创建Calendar类型的子类对象

Calendar c= Calendar.getInstance();

2  public int get(int filed):根据日历字段,获取其对应的值

Calendar c= Calendar.getInstance();
int year=c.get(Calendar.YEAR);
System.out.println(year+"年");
//输出:2022年

3  public final void set(int year,int month,int day):设置时间为指定的年,月,日

Calendar c=Calendar.getInstance();
c.set(2018, 2, 14);
year=c.get(Calendar.YEAR);
month=c.get(Calendar.MONTH);
date=c.get(Calendar.DATE);
System.out.println(year+"年"+month+"月"+date+"日");
//输出:2018年2月14日

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

//3年后的今天(插句话,正在读研的笔者真希望一键跳到三年后的今天)
c.add(Calendar.YEAR, 3);
year=c.get(Calendar.YEAR);
month=c.get(Calendar.MONTH)+1;
date=c.get(Calendar.DATE);
System.out.println(year+"年"+month+"月"+date+"日");
//输出:2025年10月15日

//10年后的五天前
c.add(Calendar.YEAR, 10);
c.add(Calendar.DATE, -5);
year=c.get(Calendar.YEAR);
month=c.get(Calendar.MONTH)+1;
date=c.get(Calendar.DATE);
System.out.println(year+"年"+month+"月"+date+"日");
//输出:2035年10月10日

5  Date getTime():返回一个Date表示日历的时间

Calendar c=Calendar.getInstance();
Date d=c.getTime();
System.out.println(d);
//输出:Sat Oct 15 21:01:07 CST 2022

  • 12
    点赞
  • 79
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1 JAVA SE 1.1 深入JAVA API 1.1.1 Lang包 1.1.2 集合 1.1.2.1.1 日期类Date 1.1.2.1.2 日历Calendar 1.1.2.1.3 随机数Random 1.1.2.1.4 向量Vector 1.1.2.1.5 栈Stack 1.1.2.1.6 哈希表Hashtable 1.1.2.1.7 位集合BitSet Hashtable 1.1.3 JAVA IO包 1.1.4 与时间有关的Date,DateFormat,Calendar 1.2 深入理解嵌套和内部 1.2.1 什么是嵌套及内部? 1.2.2 静态嵌套 1.2.3 在外部中定义内部 1.2.4 在方法中定义内部 1.2.5 匿名内部 1.2.6 内部使用的其它的问题 1.3 文件和流 1.3.1 什么是数据流 1.3.2 InputStream 的方法有: 1.3.3 OutputStream 的方法: 1.3.4 File 1.3.5 文件流的建立 1.3.6 缓冲区流 1.3.7 原始型数据流 1.3.8 对象流 1.3.9 字符流 InputStreamReader/OutputStreamWriter 1.3.10 随机存取文件 RandomAccessFile 1.3.11 小结 1.4 java中的一些常用词汇 1.5 J2SE学习中的30个基本概念 1.6 Java线程 1.7 Java 5.0多线程编程 1.8 Java Socket编程 1.9 Java的内存泄漏 1.10 抽象与接口的区别 1.11 Java变量型间的相互转换 2 JAVA与WEB 2.1 JMX规范 2.1.1 JMX概述 2.1.2 设备层(Instrumentation Level) 2.1.3 代理层 2.1.4 分布服务层 2.1.5 附加管理协议API 2.1.6 JMX的当前实现及应用 2.1.7 小结 2.2 应用 JMX 最佳实践 2.3 Java/J2EE中文问题终极解决之道 2.4 Java Web应用中的任务调度 2.5 用连接池提高Servlet访问数据库的效率 2.6 应用服务器的集群策略及Java EE 5.0 2.7 Servlet中的Listener的应用 2.8 JSTL(JSP标准标签库)介绍 3 JAVA扩展 3.1 Log4j基本使用方法 3.2 Dom4j 使用简介 3.3 Java 语言的 XML 验证 API 3.4 hibernate的hello word 3.5 JavaMail(JAVA邮件服务)API详解 3.6 jxl.jar 包简介 3.7 Java与XML联合编程之SAX篇 3.8 Java与XML联合编程之DOM篇 4 其他 4.1 代码复用的规则 4.2 Java IO 包中的Decorator模式
### 回答1: CalendarJava中常用的日期和时间处理之一。它提供了一系列的方法来处理日期和时间,包括获取年、月、日、小时、分钟、秒等信息,以及进行日期和时间的计算、比较和格式化等操作。使用Calendar可以方便地处理日期和时间,使得程序的开发更加简单和高效。 ### 回答2: CalendarJava常用的日期和时间处理,它可以帮助我们在程序中对日期和时间进行各种计算和处理。 1. 生成Calendar对象 我们可以通过Calendar的静态方法getInstance()来生成一个Calendar对象,例如: ``` Calendar calendar = Calendar.getInstance(); ``` 2. 获取日期和时间信息 Calendar提供了多个方法用于获取日期和时间信息,例如: ``` int year = calendar.get(Calendar.YEAR); // 获取年份 int month = calendar.get(Calendar.MONTH) + 1; // 获取月份 int day = calendar.get(Calendar.DAY_OF_MONTH); // 获取天数 int hour = calendar.get(Calendar.HOUR_OF_DAY); // 获取小时 int minute = calendar.get(Calendar.MINUTE); // 获取分钟 int second = calendar.get(Calendar.SECOND); // 获取秒数 ``` 在获取月份的时候需要注意,月份是从0开始的,所以需要加1。 3. 设置日期和时间信息 Calendar也提供了多个方法用于设置日期和时间信息,例如: ``` calendar.set(Calendar.YEAR, 2022); // 设置年份 calendar.set(Calendar.MONTH, Calendar.OCTOBER); // 设置月份 calendar.set(Calendar.DAY_OF_MONTH, 1); // 设置天数 calendar.set(Calendar.HOUR_OF_DAY, 12); // 设置小时 calendar.set(Calendar.MINUTE, 0); // 设置分钟 calendar.set(Calendar.SECOND, 0); // 设置秒数 ``` 在设置月份的时候可以使用Calendar中定义的常量值(如上述例子中的Calendar.OCTOBER),也可以直接使用整数值。 4. 进行日期和时间的运算 Calendar提供了一些方法用于进行日期和时间的运算,例如: ``` calendar.add(Calendar.YEAR, 1); // 年份加1 calendar.add(Calendar.MONTH, 3); // 月份加3 calendar.add(Calendar.DAY_OF_MONTH, -1); // 天数减1 calendar.add(Calendar.HOUR_OF_DAY, 2); // 小时加2 calendar.add(Calendar.MINUTE, -30); // 分钟减30 calendar.add(Calendar.SECOND, 10); // 秒数加10 ``` 可以看出,使用add方法可以对日期和时间进行加减操作。 5. 将日期和时间转为字符串 我们可以使用SimpleDateFormat将日期和时间转为字符串,例如: ``` SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String str = sdf.format(calendar.getTime()); ``` 在这个例子中,我们使用了“yyyy-MM-dd HH:mm:ss”这个模板来格式化日期和时间,其中的y代表年,M代表月,d代表日,H代表小时,m代表分钟,s代表秒。在format方法中,我们需要传入Calendar对象的getTime()方法返回的一个Date对象。 除了上述操作,Calendar还可以进行判断两个日期之间的大小,判断某一天是星期几,判断某一年是否是闰年等等。总之,CalendarJava中非常实用的一个,能够帮助我们高效地进行日期和时间的处理。 ### 回答3: CalenderJava中非常重要的日期和时间处理,提供了非常多的日期和时间计算方法。在日常开发过程中,经常需要对日期和时间进行处理和计算,Calender就是解决这个问题的最佳途径。 首先,Calendar是一个抽象,它有很多子,常见的有GregorianCalendar和ChineseCalendar。其中,GregorianCalendar是最常用的,它的日期和时间计算是与Gregorian历法相一致的,是一种流行于欧美地区使用的历法。而ChineseCalendar则是中国农历的计算,可以非常方便地进行农历和公历的转换。 Calender提供了很多静态成员变量,用来表示日期和时间的各个属性,比如YEAR、MONTH、DAY_OF_MONTH、HOUR_OF_DAY、MINUTE、SECOND等等,通过这些静态成员变量可以获得日期和时间的各个部分。同时,Calender也提供了很多方便的计算方法,比如add()、getTimeInMillis()、set()等等,可以很方便的对日期和时间进行加减、转换和设置。 在实际开发中,我们经常需要计算日期之间的差值,获取两个日期之间的日期列表,或者计算某个日期的星期几等等,这些计算也可以非常方便的使用Calender来实现。比如,我们可以使用get(Calendar.DAY_OF_WEEK)方法来获取一个日期的星期几,也可以使用add(Calendar.DATE, 1)方法来实现当前日期加1天等等。 总之,CalenderJava中非常重要的日期和时间处理,它提供了丰富的API和便捷的计算方法,能够帮助开发人员轻松处理日期和时间相关的问题。在实际开发中,我们应该充分利用Calender的各种方法,提高开发效率,减少不必要的错误。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值