【发布时间】:2012-07-30 19:04:11
【问题描述】:
为什么当我在今天加上 30 天时,我得到了今天 - 30,而当我加上 20 时,它增加了??
这是一个示例
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
【问题讨论】:
-
相关:您可以使用 Calendar.Add docs.oracle.com/javase/6/docs/api/java/util/…, int) 为日期添加 10 天
-
我感觉到这里可能存在整数溢出 (days * 1000 * 60 * 60 * 24) 记住,long 并不是 long,除非你说它是。所以今天试试 * 1000L * 60L * 60L * 24L 只是为了安全...
-
仅供参考,麻烦的旧日期时间类,如
java.util.Date、java.util.Calendar和java.text.SimpleDateFormat现在是 legacy,被 Java 8 和 Java 中内置的 java.time 类所取代9. 见Tutorial by Oracle。
标签: java