gpt4 book ai didi

java - 使用 Java-8 LocaldateTime 比较 future 三天的日期和时间

转载 作者:行者123 更新时间:2023-12-01 19:33:20 26 4
gpt4 key购买 nike

我有一个java应用程序,其中用户无法在特定日期和时间之后修改订单。例如,用户无法在第三天中午12:00之后修改订单,假设订单是在11月9日,11月12日中午12:00之后用户将无法修改订单。日期是动态的,但时间非常静态。

我试图使用下面的逻辑来计算这个,但我无法弄清楚如何从 LocalDateTime.now() 中提取当前时间进行比较。

final LocalDate orderDate  =orderData.getOrderDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
final LocalDate currentDate = LocalDate.now();
final LocalDateTime currentDateTime = LocalDateTime.now();
final LocalDate orderCancellationCutOffDate =
orderDate.minusDays(orderCancellationCutOffDays);

if (currentDate.equals(orderCancellationCutOffDays) &&
currentDateTime.isBefore(<12:00 PM>)){

<Business rule>
}

谁能帮我提供一种有效的方法来进行比较。

最佳答案

假设您的 LocalDate 中的订购日期是今天

LocalDate orderDate //2019-11-09

现在通过添加 3 天来创建截止日期

LocalDateTime deadLineDate =orderDate.plusDays(3).atStartOfDay(); //2019-11-12T00:00

即使您想要特定时间,也可以使用 atTime 方法

LocalDateTime deadLineDate =orderDate.plusDays(3).atTime(12,0);

因此,如果currentDateTime早于deadLineDate客户可以修改订单

if(currentDateTime.isBefore(deadLineDate)) {
// can modify the order

}
else {
//user can not modify the order
}

关于java - 使用 Java-8 LocaldateTime 比较 future 三天的日期和时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58782517/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com