为什么我在今天的基础上加上30天就得到了今天的30天,而当我加上20天就得到了今天的30天??
这是一个样本
import java.text.DateFormat;
import java.util.Date;
public class DatePlus
{
public static void main(String[] args)
{
Date now = new Date();
Date now1 = new Date();
Date now2 = new Date();
DateFormat currentDate = DateFormat.getDateInstance();
Date addedDate1 = addDays(now2, 20);
Date addedDate2 = addDays(now1, 30);
System.out.println(currentDate.format(now));
System.out.println(currentDate.format(addedDate1));
System.out.println(currentDate.format(addedDate2));
}
public static Date addDays(Date d, int days)
{
d.setTime(d.getTime() + days * 1000 * 60 * 60 * 24);
return d;
}
}
“这是控制台”
Jul 30, 2012
Aug 19, 2012
Jul 10, 2012
>
添加1000*60*60*24
的常用方法是错误的。您正在添加86400秒,但一天不一定是86400秒长。由于dst的原因,它可以长一个小时或短一个小时。由于闰秒的原因,它可以长一秒或短一秒。
你应该做的是将Date
转换成一个Calendar
(它实际上代表了一些日历系统,比如GregorianCalendar
。然后简单地添加天数:
Calendar calendar = new GregorianCalendar(/* remember about timezone! */);
calendar.setTime(date);
calendar.add(Calendar.DATE, 30);
date = calendar.getTime();
使用DateUtils。来自Apache Commons Lang的addDays()
:
DateUtils.add(date, 30);
这并不违反上面所写的内容,它会在下面转换为日历
。
或者完全避开这个地狱,去Joda Time。
这是因为30*1000*60*60*24
溢出整数。最大值
,而20*1000*60*60*24
没有。
用日历http://docs.oracle.com/javase/6/docs/api/java/util/GregorianCalendar.html
伪代码:
Calendar c= Calendar.getInstance();
c.add(Calendar.DATE, 30);
Date d=c.getTime();
问题内容: 我的代码。 我的问题,当表单执行此文件时,我想将这30天添加到数据库的日期列中,然后在fname中插入fname,在web中插入web,并在日期+ 30间隔中插入日期。 谢谢你。 问题答案: 使用以下查询:
问题内容: 我在MySQL中有一张表。将表中的当前日期值添加为2天的sql语句看起来像什么? 这会增加一秒钟的值,我不想更新时间,我想增加两天? 问题答案: 假设您的字段是一种类型(或相似类型): 使用您提供的示例,它看起来可能像这样: 这种方法也适用。
我不确定这是否可能? 我得拿到密码才能读 今天的月份即2月今天的日期即17月底的日期即31日,然后是一年中的其他11个月,在一行中按顺序排列 8月1日-31日|9月|10月|11月|12月|1月|2月|3月|4月|5月|6月|7月 请以最佳方式提供任何建议? 多谢 定时(timing的缩写)
问题内容: 我有一个日期,我想使用Python脚本为其添加5天。请考虑在月底也可以使用的一般解决方案。 我正在使用以下代码: ->正在打印 现在,我要在此日期之前增加5天。我使用以下代码: 哪个返回此错误: 问题答案: 先前的答案是正确的,但是通常这样做是更好的做法: 然后,您将拥有:
问题内容: 我想在日期中增加几天以在Java中获得新日期。如何使用该类来实现。 是我的生产日期的实例,我想达到到期日期,将当前日期增加100天左右并将其存储在变量中,但无法执行此操作。 问题答案: 利用。这是一个启动示例。 如果您想要更大的灵活性和更少的冗长代码,我还是建议您使用JodaTime。
如何将x天添加到Java中的日期? 例如,我的日期是,格式为。 加上5天,输出应为。