假设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);
}