calendar add(java calendar的add和set方法的区别)
本文目录
- java calendar的add和set方法的区别
- calendar add和set的区别
- java中类Calendar的roll和add的区别
- Calendar 的add方法加负数
- java:Calendar的add方法固定作的是加操作吗
- Calendar类roll和add的区别
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( StringdateBefore,int period ){ Calendar cld =Calendar.getInstance(); String dateAfter = ""; if( dateBefore == null ||dateBefore.length()==0){ returnnull; } 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; }
java中类Calendar的roll和add的区别
import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * Calendar类roll和add的区别. */ public class Test18 { public static void main(String args) { System.out.println("当前时间:" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); Calendar first = Calendar.getInstance(); Calendar second = Calendar.getInstance(); System.out.println(first.equals(second)); /* * roll方法只是对相应时间属性的域内做变化 * 例如,对月份使用roll方法,它会在1-12的范围内变化,不会影响的年 * 2011-1-15 roll(Calendar.MONTH, -1) 后是2011-12-15 */ first.roll(Calendar.MONTH, -1); System.out.println("roll后时间:" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(first.getTime())); /* * add方法会产生其他相关时间属性的连动变化 * 2011-1-15 roll(Calendar.MONTH, -1) 后是2011-12-15 */ second.add(Calendar.MONTH, -1); System.out.println("add后时间:" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(second.getTime())); } }
Calendar 的add方法加负数
Calendar now = Calendar.getInstance(); Calendar working; SimpleDateFormat formatter = new SimpleDateFormat("E yyyy.MM.dd ’at’ hh:mm:ss a zzz"); working = (Calendar) now.clone(); working.add(Calendar.DAY_OF_YEAR, -(365 * 2)); prt(" Two years ago it was: " + formatter.format(working.getTime())); working = (Calendar) now.clone(); working.add(Calendar.DAY_OF_YEAR, +5); prt(" In five days it will be: " + formatter.format(working.getTime()));
java:Calendar的add方法固定作的是加操作吗
根据日历的规则,为给定的日历字段添加或减去指定的时间量。例如,要从当前日历时间减去 5 天,可以通过调用以下方法做到这一点:add(Calendar.DAY_OF_MONTH, -5)
是这样的。
当然可以啊,-6就是6天之前。这种问题楼主可以自己手写测试一下的
Calendar类roll和add的区别
import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * Calendar类roll和add的区别. */ public class Test18 { public static void main(String args) { System.out.println("当前时间:" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); Calendar first = Calendar.getInstance(); Calendar second = Calendar.getInstance(); System.out.println(first.equals(second)); /* * roll方法只是对相应时间属性的域内做变化 * 例如,对月份使用roll方法,它会在1-12的范围内变化,不会影响的年 * 2011-1-15 roll(Calendar.MONTH, -1) 后是2011-12-15 */ first.roll(Calendar.MONTH, -1); System.out.println("roll后时间:" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(first.getTime())); /* * add方法会产生其他相关时间属性的连动变化 * 2011-1-15 roll(Calendar.MONTH, -1) 后是2011-12-15 */ second.add(Calendar.MONTH, -1); System.out.println("add后时间:" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(second.getTime())); } }
更多文章:
联想天逸f30a驱动(联想天逸F30驱动按什么顺序装 等用 谢谢)
2024年5月26日 02:16
智能手机功能(智能手机是现代社会离不开的通信工具,你玩手机熟练它们的功能吗知道多少)
2024年5月15日 03:41
IBM为何不愿修复第三方免费提交的IDRM零日漏洞?企业管理咨询在企业发展过程起到什么作用
2023年1月17日 17:00
最靠谱的硬盘修复软件(如何评价DiskGenius这款软件)
2024年5月15日 10:23
蓝魔鬼电影影评(主角是一个身体蓝色长着恶魔尾巴的人叫什么电影)
2024年10月3日 00:55
电脑是一体机好还是带主机的好(买电脑的话,是一体机好点,还是带主机的好呢)
2023年10月6日 09:15
丽台quadro k600(丽台NVIDIA Quadro K600 1G DDR3功耗多少瓦)
2023年1月27日 08:30