gpt4 book ai didi

java - 如果仅提前或落后 5 分钟,如何四舍五入到最近的小时?

转载 作者:行者123 更新时间:2023-12-03 11:17:13 26 4
gpt4 key购买 nike

我想对 Instant 进行四舍五入到 Java 中最接近的小时,但前提是它在最接近小时的 5 分钟内。
假设时间是:2021-02-08T19:02:49.594
预期结果:2021-02-08T19:00:00.000
同样,如果时间是:2021-02-08T19:56:49.594
预期结果:2021-02-08T20:00:00.000
但如果时间是 2021-02-08T19:54:49.594 或 2021-02-08T19:06:49.594 那么什么都不做。

最佳答案

您可以简单地检查日期时间的分钟部分,然后根据要求将其截断为小时。
演示:

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;

class Main {
public static void main(String[] args) {
// Test
String[] arr = { "2021-02-08T19:02:49.594", "2021-02-08T19:56:49.594", "2021-02-08T19:54:49.594",
"2021-02-08T19:06:49.594" };

DateTimeFormatter dtf = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ss.SSS");

for (String s : arr) {
System.out.println(roundToNearestHour(s).format(dtf));
}
}

static LocalDateTime roundToNearestHour(String str) {
LocalDateTime ldt = LocalDateTime.parse(str);
int minute = ldt.getMinute();
return minute < 5 ? ldt.truncatedTo(ChronoUnit.HOURS)
: (minute >= 55 ? ldt.plusHours(1).truncatedTo(ChronoUnit.HOURS) : ldt);
}
}
输出:
2021-02-08T19:00:00.000
2021-02-08T20:00:00.000
2021-02-08T19:54:49.594
2021-02-08T19:06:49.594

关于java - 如果仅提前或落后 5 分钟,如何四舍五入到最近的小时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66149567/

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