java - 在 Java 中定期添加日期到日期
问题描述
我想定期在当前日期添加天数。例如,我每经过 10 秒,我想在今天的日期上加 1 天。08/09/2019 10 秒后变成 08/10/2019...我已经有一个工作计时器,我只是不知道如何实现添加天数部分
TimerTask task = new TimerTask() {
@Override
public void run() {
day = day + 1;
model.setDay(day);
Calendar c = Calendar.getInstance();
if(model.getDay() ==1)
c.setTime(date);
Calendar d = Calendar.getInstance();
c.add(Calendar.DAY_OF_MONTH, 1);
d.add(Calendar.DAY_OF_MONTH, 0);
String currentDate = dates2.format(c.getTime());
String currentDate2 = dates2.format(d.getTime());
model.setUpdateDate(currentDate);
model.setUpdateDate2(currentDate2);
}
};
Timer timer = new Timer();
long delay = 10000;
long intervalPeriod = 10000;
解决方案
你应该使用java.time
类型而不是Date
and ,它们从 Java 8 开始Calendar
就被认为是遗留类型。
这是一个可能适合您的示例:
public class CountingDays {
private LocalDate date = LocalDate.now();
public static void main(String[] args) {
CountingDays countingDays = new CountingDays();
TimerTask task = new TimerTask() {
@Override
public void run() {
countingDays.date = countingDays.date.plusDays(1);
System.out.println(countingDays.date);
}
};
Timer timer = new Timer();
long delay = 0;
long intervalPeriod = 10_000;
timer.schedule(task, delay, intervalPeriod);
}
}
推荐阅读
- java - JavaFX 控制器未链接到 JavaFX fxml 文件
- sql-server - 如何从 AWS 托管的数据库中提取数据到本地或 Azure SQL 数据库
- amazon-web-services - 雅典娜 - CTAS 文件名
- docker - 离线时将谷歌云注册表与 docker 一起使用
- java - 错误:java:找不到符号符号:类 MockitoJUnitRunner
- ios - 如何在颤动中为 CupertinoDatePicker 小部件设置最短时间?
- javascript - phpmailer和javascript配置
- c - 如何从应用程序中执行调试器命令
- mysql - 相关视频 数据库表结构
- c# - 将数据和文件从 MVC 控制器 (NET Framework 4.6.1) 发送到 WebAPI 控制器 (NET Core 3.0)