如何在Java中设置最后期限而不对值进行硬编码

时间:2019-06-19 00:40:56

标签: java datetime

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

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

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

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

1 个答案:

答案 0 :(得分:3)

按照您的说明创建“ 非硬编码的期限”;

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