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

目录
相关文章
|
5月前
|
人工智能 缓存 监控
使用LangChain4j构建Java AI智能体:让大模型学会使用工具
AI智能体是大模型技术的重要演进方向,它使模型能够主动使用工具、与环境交互,以完成复杂任务。本文详细介绍如何在Java应用中,借助LangChain4j框架构建一个具备工具使用能力的AI智能体。我们将创建一个能够进行数学计算和实时信息查询的智能体,涵盖工具定义、智能体组装、记忆管理以及Spring Boot集成等关键步骤,并展示如何通过简单的对话界面与智能体交互。
1810 1
|
5月前
|
安全 Java 数据建模
Java记录类:简化数据载体的新选择
Java记录类:简化数据载体的新选择
313 101
|
5月前
|
安全 Java 开发者
Java记录类:简化数据载体的新方式
Java记录类:简化数据载体的新方式
329 100
|
6月前
|
安全 IDE Java
Java记录类型(Record):简化数据载体类
Java记录类型(Record):简化数据载体类
518 143
|
4月前
|
存储 Java 索引
用Java语言实现一个自定义的ArrayList类
自定义MyArrayList类模拟Java ArrayList核心功能,支持泛型、动态扩容(1.5倍)、增删改查及越界检查,底层用Object数组实现,适合学习动态数组原理。
195 4
|
4月前
|
IDE JavaScript Java
在Java 11中,如何处理被弃用的类或接口?
在Java 11中,如何处理被弃用的类或接口?
270 5
|
4月前
|
人工智能 监控 Java
Java与AI智能体:构建自主决策与工具调用的智能系统
随着AI智能体技术的快速发展,构建能够自主理解任务、制定计划并执行复杂操作的智能系统已成为新的技术前沿。本文深入探讨如何在Java生态中构建具备工具调用、记忆管理和自主决策能力的AI智能体系统。我们将完整展示从智能体架构设计、工具生态系统、记忆机制到多智能体协作的全流程,为Java开发者提供构建下一代自主智能系统的完整技术方案。
672 4
|
4月前
|
编解码 Java 开发者
Java String类的关键方法总结
以上总结了Java `String` 类最常见和重要功能性方法。每种操作都对应着日常编程任务,并且理解每种操作如何影响及处理 `Strings` 对于任何使用 Java 的开发者来说都至关重要。
351 5
|
4月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
260 1
|
4月前
|
Java Go 开发工具
【Java】(8)正则表达式的使用与常用类分享
正则表达式定义了字符串的模式。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。
319 1