java为什么我的日期不能正确设置为未来的30天?
我有以下资料:
Date now = new Date();
Date futureDate = new Date(now.getYear(), now.getMonth(), now.getDay() + 30);
我想根据当前日期(现在)将未来日期值设置为未来30天
调试时,现在是正确的日期,未来的日期是:
Sat Jan 05 00:00:00 EST 2013
今天的日期,now的值是:美国东部时间2012年12月29日星期六17:31:58
这对我来说没有意义
我正在使用util。日期
# 1 楼答案
您应该使用日历及其方法Calendar。加
# 2 楼答案
该构造函数不仅不推荐使用,而且只接受有效天数(1-31)
尝试使用java。util。取而代之的是日历
# 3 楼答案
Date
不应用于此类计算看一看JodaTime这是最适合做这些事情的
# 4 楼答案
如果您想使用Date,您将看到添加天数的操作是各种不推荐的:
http://docs.oracle.com/javase/7/docs/api/java/util/Date.html
改用
new Date(now.getTime() + (MILLISECONDS_IN_DAY * 30))
。或者,如果你对日期不感兴趣,可以使用日历# 5 楼答案
因为
getDay()
返回的是一周中的某一天,而不是一个月中的某一天那么你的
变成周六+30=6+30=36十二月=1月5日
快速修复方法是将代码替换为:
但正如其他人已经指出的那样,
java.util.Date
有点不受欢迎。您应该使用Calendar.add()
。因此,您的代码将类似于: