我在这里有这个代码:
public static String AddRemoveDays(String date, int days) throws ParseException
{
SimpleDateFormat k = new SimpleDateFormat("yyyyMMdd");
Date d = k.parse(date);
d = new Date(d.getTime() + days*86400000);
String time = k.format(d);
return time;
}
Run Code Online (Sandbox Code Playgroud)
它采用String形成"yyyyMMdd",并添加int天.它应该工作,那么日子是负面的 - 然后他会减去日期的日子.当它执行数学运算时,它返回格式化为"yyyyMMdd"的字符串.
至少这是应该做的.它适用于小数字,但如果我尝试添加(或删除),例如,一年(365或-365),它将返回奇怪的日期.
有什么问题?我应该以另一种方式做到这一点吗?
d = new Date(d.getTime() + days*86400000);
Run Code Online (Sandbox Code Playgroud)
如果你将86400000乘以365整数,则不能保持它.将86400000更改为Long
d = new Date(d.getTime() + days*86400000L);
Run Code Online (Sandbox Code Playgroud)
这没关系.