【发布时间】:2016-07-25 17:14:56
【问题描述】:
我有一个日期字段被放入 .csv 文件中,我需要从每个日期中减去一天。这些日期取自一个 csv 作为字符串变量,并作为字符串变量放入另一个 csv。这些日期都格式化为 mm/dd/yyyy,我需要从每个日期中减去一天。我正在寻找如何做到这一点的最佳解决方案。
例如,我有一个日期为 2016 年 7 月 28 日,我需要将其带到 2016 年 7 月 27 日。
非常感谢所有帮助,在此先感谢。
编辑:我真的很感谢所有答案这么快,真的最终把它分成像第一个评论这样的步骤,我本可以使用 JodaTime 答案,但我只是选择了我看到的其他选项。
这是代码:
private String subtractDate(String date) {
SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy");
String returnValue = "";
try {
Date newDate = formatter.parse(date);
Calendar cal = Calendar.getInstance();
cal.setTime(newDate);
cal.add(Calendar.DATE, -1);
Date minusOne = cal.getTime();
returnValue = formatter.format(minusOne);
} catch (Exception e) {
e.printStackTrace();
}
return returnValue;
}
现在可以正常工作了,再次感谢所有答案。我将接受第一个答案,因为我认为它会起作用,但我只是没有走那条路。
【问题讨论】:
-
把你的问题分成三个部分: 1)把字符串解析成更合理的类型; 2) 减去一天; 3) 格式化回字符串。我建议使用
java.time.LocalDate。 -
不是精确重复但加一天或减一天是一回事
-
感谢您的帮助!
标签: java date datetime date-format