您不必使用日历。您可以只使用时间戳记:
Date d = initDate();//intialize your date to any date Date dateBefore = new Date(d.getTime() - n * 24 * 3600 * 1000 l ); //Subtract n days
更新 不要忘记在1000年底之前长时间添加“ l”。
请考虑以下警告:
在
1000*60*60*24java秒,夏令时等情况下,将毫秒添加到Java日期中将使原始日期增加零天或两天。如果您需要100%确定仅添加一天,则此解决方案不可用。



