java - 如何从 Java 中的 Date 对象中减去 X 天?

标签 java date datetime calendar java.util.date

我想做这样的事情:

Date date = new Date(); // current date
date = date - 300; // substract 300 days from current date and I want to use this "date"

怎么做?

最佳答案

Java 8 及更高版本

随着 Java 8 的日期时间 API 更改,使用 LocalDate

LocalDate date = LocalDate.now().minusDays(300);

同样可以

LocalDate date = someLocalDateInstance.minusDays(300);

请参阅 https://stackoverflow.com/a/23885950/260990用于 java.util.Date <--> java.time.LocalDateTime

之间的转换
Date in = new Date();
LocalDateTime ldt = LocalDateTime.ofInstant(in.toInstant(), ZoneId.systemDefault());
Date out = Date.from(ldt.atZone(ZoneId.systemDefault()).toInstant());

Java 7 及更早版本

使用 Calendaradd()方法

Calendar cal = Calendar.getInstance();
cal.setTime(dateInstance);
cal.add(Calendar.DATE, -30);
Date dateBefore30Days = cal.getTime();

关于java - 如何从 Java 中的 Date 对象中减去 X 天?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11882926/

相关文章:

java - 如何根据时间多次显示textView

Java媒体框架: how do I install JMF for mac?

sql - 考虑重叠事件计算用户的 "busy duration"

java - SimpleDateFormat,需要文本月份

sql - 创建 SQL View 时如何从日期时间获取日期?

C# - 搜索不同日期的 2 个 DateTime 对象之间的时间

java - 当给定相对或绝对路径以及相对于它的绝对路径时,如何获取文件的绝对路径

java - 在 java 中将 JMS BytesMessage 转换为 String 并在另一个进程中使用相同的 bytesmessage

mysql - 需要添加一个日期引用 (MAX(DATE)),该引用返回当天发生的数量。我无法添加实际日期

python - 分词建议