calendar add(java calendar的add和set方法的区别)

本文目录
java calendar的add和set方法的区别
public void set(int field, int value) 将指定的日历字段设置为给定的值,field参考常量字段值
public void set(year, month, date, hourOfDay, minute, second)
public void add(int field, int amount) 根据日历的规则,为给定的日历字段添加或减去指定的时间量。
// 例子
import java.util.Calendar;
import java.util.Date;
public class TestCalendar2 {
public static void main(String args) {
Calendar calendar = Calendar.getInstance();
// 从一个 Calendar 对象中获取 Date 对象
Date date = calendar.getTime();
//使用给定的 Date 设置此 Calendar 的时间
calendar.setTime(date);
calendar.set(Calendar.DAY_OF_MONTH, 8);
System.out.println(“当前时间日设置为8后,时间是:“ + calendar.getTime());
calendar.add(Calendar.HOUR, 2);
System.out.println(“当前时间加2小时后,时间是:“ + calendar.getTime());
calendar.add(Calendar.MONTH, -2);
System.out.println(“当前日期减2个月后,时间是:“ + calendar.getTime());
}
}
calendar add和set的区别
Calendar类的set()和add()方法对日期的变化有些不同:
具体实现如下:
set():单纯的设定日期,如果设定的日期不存在的话,他会向下移动。
Add():它移动的是日期的偏移量。
例如:
set : 2009/07/31 3个月前的日期是 :
2009/05/01
add : 2009/07/31 3个月前的日期是 :
2009/04/30
代码实现如下:
static String getDateEndOfPeriod( String
dateBefore,int period ){
Calendar cld =
Calendar.getInstance();
String dateAfter = ““;
if( dateBefore == null ||
dateBefore.length()==0){
return
null;
}
String year =
dateBefore.substring(0,4);
String month =
dateBefore.substring(4,6);
String day =
dateBefore.substring(6,8);
//开始日カレンダー
cld.clear();
cld.setLenient(true);
cld.set( Calendar.YEAR,
Integer.valueOf(year).intValue() );
cld.set( Calendar.MONTH,
Integer.valueOf(month).intValue() - 1);
cld.set( Calendar.DATE,
Integer.valueOf(day).intValue());
//このメソッドには偏移量の移动、结果的に2009/07/31--3ヶ月前---》2009/04/30
cld.add(Calendar.MONTH,
-period);
//単纯にセットしているので日付ない日には次の日を移动する、结果的に2009/07/31--3ヶ月前---》2009/05/01
// cld.set( Calendar.MONTH,
Integer.valueOf(month).intValue() - 1 - period);
int mon =
cld.get(Calendar.MONTH) + 1;
int dy =
cld.get(Calendar.DATE);
dateAfter =
String.valueOf(cld.get(Calendar.YEAR)) +
( mon
《 10 ? “0“ + String.valueOf(mon) :
String.valueOf(mon) ) +
( dy
《 10 ? “0“ + String.valueOf(dy) : String.valueOf(dy)
);
return dateAfter;
}
关于Calendar add
方法只支持int,那就再分钟上做吧
c.add(Calendar.MINUTE, -90);一个半小时

本文相关文章:
parentnode(在javascript中parentNode,parentElement,offsetParent有什么区别啊)
2026年10月7日 11:10
settimeoutinterval(如何使用定时器settimeout,setInterval执行能传递参数的函数)
2026年9月29日 05:20
dns配置错误是什么原因(dns配置错误 网上几种方法都试了 但都没用)
2026年9月15日 23:30
textarea默认值(用JQuery的text()方法赋值的问题)
2026年9月4日 18:20
exchange 2007(exchange 2007配置邮箱发送权限通过什么方法来实现)
2026年9月3日 21:20
更多文章:
while语句怎么结束(c语言中while(y--)是怎么结束的)
2026年10月10日 15:30
江苏移动掌上营业厅登录首页(中国移动网上营业厅手机登陆需要的服务密码是什么)
2026年10月10日 15:20
cooker是什么意思(厨师用英语怎么说还有cooker什么意思)
2026年10月10日 14:20
html select 事件(html中select标签的onChange属性是干什么用的)
2026年10月10日 13:00
虚拟主机和服务器有什么区别(云服务器和云虚拟主机有什么区别吗)
2026年10月10日 12:30
grasshoppers(grasshopper是什么意思)
2026年10月10日 11:10

