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

目录
相关文章
|
17天前
|
存储 安全 Java
java.util的Collections类
Collections 类位于 java.util 包下,提供了许多有用的对象和方法,来简化java中集合的创建、处理和多线程管理。掌握此类将非常有助于提升开发效率和维护代码的简洁性,同时对于程序的稳定性和安全性有大有帮助。
41 17
|
9天前
|
安全 Java
Java多线程集合类
本文介绍了Java中线程安全的问题及解决方案。通过示例代码展示了使用`CopyOnWriteArrayList`、`CopyOnWriteArraySet`和`ConcurrentHashMap`来解决多线程环境下集合操作的线程安全问题。这些类通过不同的机制确保了线程安全,提高了并发性能。
|
13天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
54 4
|
14天前
|
Java 编译器 开发者
Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面
本文探讨了Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面,帮助开发者提高代码质量和程序的健壮性。
32 2
|
18天前
|
存储 安全 Java
如何保证 Java 类文件的安全性?
Java类文件的安全性可以通过多种方式保障,如使用数字签名验证类文件的完整性和来源,利用安全管理器和安全策略限制类文件的权限,以及通过加密技术保护类文件在传输过程中的安全。
|
22天前
|
Java 数据格式 索引
使用 Java 字节码工具检查类文件完整性的原理是什么
Java字节码工具通过解析和分析类文件的字节码,检查其结构和内容是否符合Java虚拟机规范,确保类文件的完整性和合法性,防止恶意代码或损坏的类文件影响程序运行。
|
22天前
|
Java API Maven
如何使用 Java 字节码工具检查类文件的完整性
本文介绍如何利用Java字节码工具来检测类文件的完整性和有效性,确保类文件未被篡改或损坏,适用于开发和维护阶段的代码质量控制。
|
22天前
|
存储 Java 编译器
java wrapper是什么类
【10月更文挑战第16天】
23 3
|
25天前
|
Web App开发 Java
使用java操作浏览器的工具selenium-java和webdriver下载地址
【10月更文挑战第12天】Selenium-java依赖包用于自动化Web测试,版本为3.141.59。ChromeDriver和EdgeDriver分别用于控制Chrome和Edge浏览器,需确保版本与浏览器匹配。示例代码展示了如何使用Selenium-java模拟登录CSDN,包括设置驱动路径、添加Cookies和获取页面源码。
|
25天前
|
Java 程序员 测试技术
Java|让 JUnit4 测试类自动注入 logger 和被测 Service
本文介绍如何通过自定义 IDEA 的 JUnit4 Test Class 模板,实现生成测试类时自动注入 logger 和被测 Service。
22 5