【快船CMS】PHP免费开源网站内容管理系统,企业建站cms系统源码下载,技术社区信息平台

Java中calendar.add方法的介绍与应用

在Java中,`Calendar`类是一个非常实用的日期和时间处理工具。以下是关于`calendar.add`方法的相关介绍及示例。

首先,我们来看一些基本的代码示例:

示例1:获取当前日期并增加一天

Calendar calendar = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
calendar.add(Calendar.DAY_OF_YEAR, 1);
Date date = calendar.getTime();
String formattedDate = sdf.format(date);

示例2:获取上个月的日期

public static String getLastMonthDay(String data) {
    SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
    ParsePosition pos = new ParsePosition(0);
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(formatter.parse(data, pos));
    calendar.add(Calendar.MONTH, -1);
    return formatter.format(calendar.getTime());
}

示例3:计算两年后的日期

Calendar now = Calendar.getInstance();
Calendar working = (Calendar) now.clone();
SimpleDateFormat formatter = new SimpleDateFormat("E 'at' hh:mm:ss a zzz");
working.add(Calendar.DAY_OF_YEAR, 365 * 2);
System.out.println("Two years ago it was " + formatter.format(working.getTime()));

示例4:设置日期为前一天

Date dNow = new Date();
Date dBefore = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(dNow);
calendar.add(Calendar.DAY_OF_MONTH, -1);
dBefore = calendar.getTime();

关于`calendar.add`方法的原理,当调用`calendar.add`方法时,会重新计算日历的毫秒数和所有字段。它调用的是`Calendar`中的`updateTime`方法,而`updateTime`方法又调用了`computeTime`方法。不过在`Calendar`抽象类中,`computeTime`方法是抽象的,所以即使执行了`add`之类的方法,也不会立即更新到毫秒数。这意味着虽然其字段的值已经改变,但是毫秒数并未重新计算。

日历编辑示例图

另外,需要注意的是,`Calendar`的月份是从0到11的。例如,`objCalendar.add(Calendar.MONTH, -1)`的作用就是将月份减1。比如`objCalendar.set(2001, 2, 1)`之后的日期是2001年3月1日,此时直接加上28天就是2001年3月29日,如果加上`objCalendar.add(Calendar.MONTH, -1)`,月份减1,日期就变成了2001年2月1日。

同时,时间单位的换算为:1小时 = 60分 = 60 * 60秒 = 3600秒。在使用`calendar.add`方法时,可能需要根据具体需求设置`Locale`等相关属性。

相关标签 :

2026年优选CMS系统!快创CMS助力企业高效线上布局
快创CMS常见问题解答,新手建站避坑指南
免费CMS推荐!快创CMS免费版够用吗?实测分享
快创CMS私有化部署优势解析,数据安全更有保障
中小企业如何用快创CMS做好内容管理,提升用户留存?
对比多款CMS后,我最终选择了快创CMS的3个理由
优质网站建设推荐及相关软件分析
在选择网站建设机构时,有不少不错的选择。... 2026-04-25 18:30:17
忍将礼包及相关活动介绍
参与回答问题,有机会赢取新手礼包。不过有... 2026-04-25 18:00:19
比思论坛discuz相关问题及Discuz平台介绍
1、当遇到比思论坛discuz打不开或无... 2026-04-25 17:50:14
3G网站设计、建设流程及相关特点
3G的网址即3G网站设计,它是专门为手机... 2026-04-25 17:10:19
安卓ROM制作与刷机教程:从入门到精通
TCLP306C电信版救砖教程及reco... 2026-04-25 16:50:22
移动积分换话费的多种方式及操作步骤
移动积分换话费有多种方式,以下为您详细介... 2026-04-25 16:30:28
无合适新标题
无合适新内容 2026-04-25 15:50:03
sexybeachpr相关介绍
相关文章有道翻译sexybabe性感的宝... 2026-04-25 13:20:14
拷贝临时文件失败致导入任务失败的解决办法
拷贝时,你只拷安装包和补丁包就行,其他的... 2026-04-25 12:40:16
Java中calendar.add方法的介绍与应用
在Java中,`Calendar`类是一... 2026-04-25 11:20:23