从java中的当前日期对象中减去x天

Waq*_*Ali -1 java date

我在stackoverflow上关注这个问题但是当n的值大于24时它没有给我正确的答案.请给我另一个解决方案并修改那个问题.

这是代码

Date d = new Date();
Date dateBefore = new Date(d.getTime() - (25 * 24 * 3600 * 1000) );
Run Code Online (Sandbox Code Playgroud)

当我检查datebefore值时,它显示我的日期是星期二,星期二,星期二,02:34:18 UTC 2013

现在,如果我将值25更改为24,我将得到正确的日期,即2013年10月8日星期二09:38:48 UTC

Mad*_*mer 5

可能有几种不同的方法来实现这一点,最简单的方法是不使用第三方库可能是使用CalendarAPI,例如

int n = //...
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, n);
Date newDate = cal.getTime();
Run Code Online (Sandbox Code Playgroud)

哪里n可以是正数或负数.所以要从当前日期减去2天,你会做出n = -2;

您可能还想查找Joda-Time


gre*_*449 5

该值25 * 24 * 3600 * 1000太大,无法放入int并评估为-2134967296.例如,您需要将值指定为long- 25l * 24 * 3600 * 1000.