gpt4 book ai didi

Java如何比较当前时间是否在两个时间范围内

转载 作者:搜寻专家 更新时间:2023-11-01 03:37:29 24 4
gpt4 key购买 nike

我有两次 String t1 = "17:00:00-07:00"String t2 = "23:59:00-07:00" ,即本地时间下午 5 点和晚上 11:59(我的时区是太平洋时间)。

假设我在 EST 时区。如何知道当前时间是否在时区差异的 t1 和 t2 范围内?

我尝试使用:

ISODateTimeFormat.timeNoMillis()
.parseDateTime(t1)
.withZone(DateTimeZone.UTC)
.toLocalTime()
.toDateTimeToday();

但它给了我 17:00:00-04:00 当我期待像 20:00:00-04 这样的东西时: 00

最佳答案

假设 ISODateTimeFormat.timeNoMillis() 始终是合适的解析器,您想使用 Interval为此上课。另外,使用 parseLocalTime()而不是 parseDateTime() 然后是 convert it to a DateTime 使用.withOffsetParsed() method以确保正确处理时区。

public static boolean isNowBetweenRange(String t1, String t2) {    
DateTime time1 = normalizeString(t1);
DateTime time2 = normalizeString(t2);

Interval interval = new Interval(time1, time2);

return interval.contains(DateTime.now());
}

private static final DateTimeFormatter FORMAT =
ISODateTimeFormat.timeNoMillis().withOffsetParsed();

private static DateTime normalizeString(String t1) {
DateTimeZone zone = FORMAT.parseDateTime(t1).getZone();
return FORMAT
.parseLocalTime(t1)
.toDateTimeToday(zone);
}

关于Java如何比较当前时间是否在两个时间范围内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26433107/

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