Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中日期的加减法_Java_Datetime_Date - Fatal编程技术网

Java中日期的加减法

Java中日期的加减法,java,datetime,date,Java,Datetime,Date,如何在java中添加或减去日期?例如java.sql.Date格式如下:yyyy-MM-dd,如何从中添加5个月?我在一些教程中看到他们正在使用日历,我们可以在日历上设置日期吗?请帮忙 示例:2012-01-01添加5个月后将变为2012-06-01 PS:我是一名.Net程序员,正在慢慢学习Java环境。使用 首先,您必须将字符串日期转换为java.util.date,而不是使用java.util.Calendar来操作日期。也可以用米利斯做数学运算,但我不推荐这样做 publicstatic

如何在java中添加或减去日期?例如
java.sql.Date
格式如下:yyyy-MM-dd,如何从中添加5个月?我在一些教程中看到他们正在使用
日历
,我们可以在日历上设置日期吗?请帮忙

示例:
2012-01-01
添加5个月后将变为
2012-06-01

PS:我是一名.Net程序员,正在慢慢学习Java环境。

使用


首先,您必须将
字符串
日期转换为
java.util.date
,而不是使用
java.util.Calendar
来操作日期。也可以用米利斯做数学运算,但我不推荐这样做

publicstaticvoidmain(最终字符串[]args)引发异常{
最终字符串sdate=“2012-01-01”;
最终简化格式df=新简化格式(“yyyy-MM-dd”);
final Date Date=df.parse(sdate);//从字符串转换
final java.util.Calendar cal=GregorianCalendar.getInstance();
校准设定时间(日期);
cal.add(gregorianalendar.MONTH,5);//日期操作
System.out.println(“结果:+df.format(cal.getTime());//转换为字符串
}

清除日期数学的内置日期类。看看JodaTime,它有一个更好的API来处理这类事情。

或者,将日期转换为以毫秒为单位的时间。进行计算,并将毫位数转换回日期。

要将日期转换为日历,请使用:

Date date = your_date_here;

Calendar cal = Calendar.getInstance();
cal.setTime(date);
然后使用日历算术函数添加/减去:

cal.add(Calendar.MONTH, 5);

使用谷歌GWT软件包中的
CalenderUtils

import com.google.gwt.user.datepicker.client.CalendarUtil;

另一个选项是来自第三方Apache Commons库集合的类。例如:

Date d = DateUtils.parseDate("2012-01-01", "yyyy-MM-dd");
Date d2 = DateUtils.addMonths(d, 5);
System.out.println("Old date + 5 months = " + d2);

执行日期添加的完整程序位于

Sir中,
getInstance
做什么?如何将cal设置为
2012-01-01
getInstance()
是一种工厂方法,它将使用系统的当前日期和时间初始化日历,您可以使用
setTime()
方法设置任何日期,请参阅java文档您建议在一个日期后添加5个月,就是将整个GWT添加到一个项目中?正如@Parixit指出的,通常我们会尝试解释像这样的链接的大行。如果链接掉了,你的答案对社区就没用了。如果您可以编辑它来添加重要的部分,它将得到一个有效的答案:)thx^^
//now
Date d = new Date();
// Now + 2 months
CalendarUtil.addMonthsToDate(d, 2);
Date d = DateUtils.parseDate("2012-01-01", "yyyy-MM-dd");
Date d2 = DateUtils.addMonths(d, 5);
System.out.println("Old date + 5 months = " + d2);