Java日期Canlender

本文介绍了 Java 中 Calendar 类的基本概念及使用方法,包括如何获取当前日期和时间、解析日历字段值,以及如何通过 set()、add() 和 roll() 方法来操作日期。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java.util.Carlendar介绍:
Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。

Calendar 提供了一个类方法 getInstance,以获得此类型的一个通用的对象。Calendar 的 getInstance 方法返回一个 Calendar 对象,其日历字段已由当前日期和时间初始化:

Java代码 复制代码
  1. Calendar rightNow = Calendar.getInstance();  
Calendar rightNow = Calendar.getInstance();


日历字段解析
在计算日历字段中的日期和时间时,可能没有足够的信息用于计算(例如只有年和月,但没有日),或者可能有不一致的信息( 例如 "Tuesday, July 15, 1996"(格林威治时间)——实际上,1996 年 7 月 15 日是星期一 )。Calendar 将解析日历字段值,以便用以下方式确定日期和时间。
如果日历字段值中存在任何冲突,则 Calendar 将为最近设置的日历字段提供优先权。以下是日历字段的默认组合。将使用由最近设置的单个字段所确定的最近组合。

对于日期字段:
Java代码 复制代码
  1. YEAR + MONTH + DAY_OF_MONTH   
  2. YEAR + MONTH + WEEK_OF_MONTH + DAY_OF_WEEK   
  3. YEAR + MONTH + DAY_OF_WEEK_IN_MONTH + DAY_OF_WEEK   
  4. YEAR + DAY_OF_YEAR   
  5. YEAR + DAY_OF_WEEK + WEEK_OF_YEAR  
YEAR + MONTH + DAY_OF_MONTH
YEAR + MONTH + WEEK_OF_MONTH + DAY_OF_WEEK
YEAR + MONTH + DAY_OF_WEEK_IN_MONTH + DAY_OF_WEEK
YEAR + DAY_OF_YEAR
YEAR + DAY_OF_WEEK + WEEK_OF_YEAR


对于时间字段:
Java代码 复制代码
  1. HOUR_OF_DAY   
  2. AM_PM + HOUR  
HOUR_OF_DAY
AM_PM + HOUR


字段操作
可以使用三种方法更改日历字段:set()、add() 和 roll()。(详细操作见javadoc)

例子
从页面得到一个日期,并将这个日期的天加一天:

全部代码如下:
Java代码 复制代码
  1. Date date = new Date();   
  2. Calendar calendar = Calendar.getInstance();   
  3. calendar.setTime(date);   
  4. calendar.add(calendar.DAY_OF_MONTH, +1);   
  5. date = calendar.getTime();  
Date date = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(calendar.DAY_OF_MONTH, +1);
date = calendar.getTime();

假设Date对象得到页面输入的日期,然后通过Calendar的getInstance方法得到其实例,然后通过setTime方法将Date对象中的日期转换为Calendar对象.

现在就是最关键这步,使用calendar的add方法,对日期进行操作,首先add方法有两个参数:
Java代码 复制代码
  1. public abstract void add(int field,int amount)  
public abstract void add(int field,int amount)

field :日历字段,通过calendar的成员得到其值(calendar成员很多,参加javadoc);
amount :为字段添加的日期或时间量,通过该参数,设置需要增加或者减少的时间范围.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值