java中强大的时间处理工具:Calendar类(日历类)

简介: `Calendar`类是Java中用来处理日期和时间的类,提供了许多属性来获取日期和时间的不同部分,如年、月、日、小时等。`Calendar`的常用属性包括`YEAR`(年)、`MONTH`(月)、`DATE`/`DAY_OF_MONTH`(日)、`DAY_OF_YEAR`(一年中的第几天)、`DAY_OF_WEEK_IN_MONTH`(一月中第几个星期)、`DAY_OF_WEEK`/`WEEK_OF_MONTH`(星期)等。

Calendar的常用属性

属性 作用
YEAR 年份
MONTH 月份
DATE 同DAY_OF_MONTH,日期
DAY_OF_MONTH 同DATE,日期
DAY_OF_YEAR 这一天是这一年中的第几天
DAY_OF_WEEK_IN_MONTH 当前月中的第几周
DAY_OF_WEEK 一周中的第几天 / 星期
HOUR 12小时制的时间
HOUR_OF_DAY 24小时制的时间
MINUTE 分钟数
SECOND 秒数
MILLISECOND 毫秒

Calendar的常用方法

方法 效果
public static Calendar getInstance(TimeZone zone,Locale aLocale) 获得一个日历对象
public int get(int field) 传入field字段获得给定日历字段的值
public final void set(int year,int month,int date,int hourOfDay,int minute,int second) 设置日历对象代表的时间
public final void setTime(Date date) 使用给定的 Date 设置此 Calendar 的时间。
public void setTimeInMillis(long millis) 用给定的 long 值设置此 Calendar 的当前时间值。
public final Date getTime() 返回一个表示此 Calendar 时间值(从历元至现在的毫秒偏移量)的 Date 对象。
public long getTimeInMillis() 返回此 Calendar 的时间值,以毫秒为单位。
public int getActualMaximum(int field)
传入Calendar.Date,得到这个月可能有多少天

接下来,举个例子:

package test;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

public class testCalendar {

   public static void main(String[] args) throws ParseException {

       Calendar c = Calendar.getInstance();

       System.out.println(c.getTime());

      // 获得年份

       System.out.println("现在是:" + c.get(Calendar.YEAR) + "年");

      // 获得月份

       System.out.println("现在是:" + (c.get(Calendar.MONTH)+1) + "月");

      //获得日期

       System.out.println("现在是:" + c.get(Calendar.DATE) + "号");

       System.out.println("现在是:" + c.get(Calendar.DAY_OF_MONTH) + "号");

      // 获得这是今年的第几天

       System.out.println("现在是今年第" + c.get(Calendar.DAY_OF_YEAR) + "天");

      // 获得今天周几

       System.out.println("现在是星期:" + (c.get(Calendar.DAY_OF_WEEK)-1) );

      // 获得今天是这个月的第几周

       System.out.println("现在是第:" + c.get(Calendar.DAY_OF_WEEK_IN_MONTH) + "周" );

      // 12小时制的时间

       System.out.println("现在是:" + c.get(Calendar.HOUR) + "点");

      // 24小时制的时间

       System.out.println("现在是:" + c.get(Calendar.HOUR_OF_DAY) + "点");

      // 分钟数

       System.out.println("现在是:" + c.get(Calendar.MINUTE) + "分");

      // 秒数

       System.out.println("现在是:" + c.get(Calendar.SECOND) + "秒");

      // 毫秒

       System.out.println("现在是:" + c.get(Calendar.MILLISECOND) + "毫秒");

       

       

       

       

       

       

       SimpleDateFormat dc = new SimpleDateFormat();

       dc.applyPattern("yyyy-MM-dd");

       Date d = dc.parse("2017-5-13");

       c.setTime(d);

       System.out.println("--------------------2017-5-13信息-----------------------");

      // 获得年份

       System.out.println("现在是:" + c.get(Calendar.YEAR) + "年");

      // 获得月份

       System.out.println("现在是:" + (c.get(Calendar.MONTH)+1) + "月");

      //获得日期

       System.out.println("现在是:" + c.get(Calendar.DATE) + "号");

       System.out.println("现在是:" + c.get(Calendar.DAY_OF_MONTH) + "号");

      // 获得这是今年的第几天

       System.out.println("现在是今年第" + c.get(Calendar.DAY_OF_YEAR) + "天");

      // 获得今天周几

       System.out.println("现在是星期:" + (c.get(Calendar.DAY_OF_WEEK)-1) );

      // 获得今天是这个月的第几周

       System.out.println("现在是第:" + c.get(Calendar.DAY_OF_WEEK_IN_MONTH) + "周" );

   }

}

运行结果如下:

Thu Apr 11 17:53:52 CST 2019

现在是:2019

现在是:4

现在是:11

现在是:11

现在是今年第101

现在是星期:4

现在是第:2

现在是:5

现在是:17

现在是:53

现在是:52

现在是:818毫秒

--------------------2017-5-13信息-----------------------

现在是:2017

现在是:5

现在是:13

现在是:13

现在是今年第133

现在是星期:6

现在是第:2

NorthS
+关注
目录
打赏
0
0
0
0
3
分享
相关文章
|
4月前
|
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
120 9
|
6天前
|
课时14:Java数据类型划分(初见String类)
课时14介绍Java数据类型,重点初见String类。通过三个范例讲解:观察String型变量、"+"操作符的使用问题及转义字符的应用。String不是基本数据类型而是引用类型,但使用方式类似基本类型。课程涵盖字符串连接、数学运算与字符串混合使用时的注意事项以及常用转义字符的用法。
课时11:综合实战:简单Java类
本次分享的主题是综合实战:简单 Java 类。主要分为两个部分: 1.简单 Java 类的含义 2.简单 Java 类的开发
|
7天前
|
Java代码结构解析:类、方法、主函数(1分钟解剖室)
### Java代码结构简介 掌握Java代码结构如同拥有程序世界的建筑蓝图,类、方法和主函数构成“黄金三角”。类是独立的容器,承载成员变量和方法;方法实现特定功能,参数控制输入环境;主函数是程序入口。常见错误包括类名与文件名不匹配、忘记static修饰符和花括号未闭合。通过实战案例学习电商系统、游戏角色控制和物联网设备监控,理解类的作用、方法类型和主函数任务,避免典型错误,逐步提升编程能力。 **脑图速记法**:类如太空站,方法即舱段;main是发射台,static不能换;文件名对仗,括号要成双;参数是坐标,void不返航。
28 5
课时37:综合实战:数据表与简单Java类映射转换
今天我分享的是数据表与简单 Java 类映射转换,主要分为以下四部分。 1. 映射关系基础 2. 映射步骤方法 3. 项目对象配置 4. 数据获取与调试
|
4月前
|
java小工具util系列2:字符串工具
java小工具util系列2:字符串工具
179 83
JAVA泛型类的使用(二)
接上一篇继续介绍Java泛型的高级特性。3. **编译时类型检查**:尽管运行时发生类型擦除,编译器会在编译阶段进行严格类型检查,并允许通过`extends`关键字对类型参数进行约束,确保类型安全。4. **桥方法**:为保证多态性,编译器会生成桥方法以处理类型擦除带来的问题。5. **运行时获取泛型信息**:虽然泛型信息在运行时被擦除,但可通过反射机制部分恢复这些信息,例如使用`ParameterizedType`来获取泛型参数的实际类型。
JAVA泛型类的使用(一)
Java 泛型类是 JDK 5.0 引入的重要特性,提供编译时类型安全检测,增强代码可读性和可维护性。通过定义泛型类如 `Box<T>`,允许使用类型参数。其核心原理是类型擦除,即编译时将泛型类型替换为边界类型(通常是 Object),确保与旧版本兼容并优化性能。例如,`Box<T>` 编译后变为 `Box<Object>`,从而实现无缝交互和减少内存开销。
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
FastExcel 是一款基于 Java 的高性能 Excel 处理工具,专注于优化大规模数据处理,提供简洁易用的 API 和流式操作能力,支持从 EasyExcel 无缝迁移。
357 9
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
|
4月前
|
在 Java 中,一个类可以实现多个接口吗?
这是 Java 面向对象编程的一个重要特性,它提供了极大的灵活性和扩展性。
223 58

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等