java - 如何在不对值进行硬编码的情况下在 Java 中设置截止日期

标签 java datetime

<分区>

我需要设置一个程序,将日期对象(比如日期对象 1)的创建日期与另一个代表截止日期的 future 日期或日期对象(比如日期对象 2)进行比较。例如,如果我创建一个初始日期时间对象,我希望能够将当前创建日期与说日期(截止日期)后 18 天的日期进行比较。我不想硬编码实际日期和截止日期.它应该返回一个 boolean 值(当当前日期等于或晚于截止日期时为真,否则为假)。最后,我想将截止日期存储在外部数据库中,然后在适当的时候将截止日期与当前日期进行比较。

我可以使用下面的代码获取当前日期,但不确定如何通过从当前日期指定“x”天而不是对日期值进行硬编码来获取截止日期。

我知道如何创建一个日期对象(如下所示),但我希望能够创建一个与当前创建日期相对应的截止日期对象,将截止日期存储在数据库中,同时不断比较当前日期与截止日期。

DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd");
LocalDate localDate = LocalDate.now();
System.out.println(dtf.format(localDate)); //2016/11/16

最佳答案

创建一个“非硬编码截止日期”;

LocalDate currentDate = LocalDate.now();
LocalDate deadline = LocalDate.now().plusDays(10); // x = 10
storeDb(deadline);

然后稍后进行截止日期检查;

LocalDate deadline = getDeadlineFromDb();
LocalDate currentDate = LocalDate.now();
if (currentDate.isAfter(deadline)) {
    // deadline has passed
}

更多详情请查看; Introduction to the Java 8 Date/Time API

关于java - 如何在不对值进行硬编码的情况下在 Java 中设置截止日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56658688/

相关文章:

java - 如何清除Chrome web driver和IE web driver的日志

java - View 中的 Android 捏合/双指旋转

java - 任意货币字符串 - 将所有部分分开?

java - 无法初始化代理 - 没有 session 和惰性对象

c# - DateTime 算法建议

Java boolean 数组实例化为null

r - 从 DocumentDB 导入到 Azure 机器学习 - 以毫秒为单位的日期时间

php - FROM_UNIXTIME() 和 PHP strtotime()

objective-c - 如何使用日期字符串获取时间

mysql - 如何显示计算的休假时间?