gpt4 book ai didi

java - 如何查看时间是否在纽约时间下午 2 点到凌晨 1 点之间?

转载 作者:行者123 更新时间:2023-12-01 18:25:35 25 4
gpt4 key购买 nike

我需要检查纽约时区的时间是否在下午 2 点到凌晨 1 点之间,但我不确定如何选择时区或下一步做什么

  String string1 = "14:00:00";
Date time1 = new SimpleDateFormat("HH:mm:ss").parse(string1);
Calendar calendar1 = Calendar.getInstance();
calendar1.setTime(time1);

String string2 = "01:00:00";
Date time2 = new SimpleDateFormat("HH:mm:ss").parse(string2);
Calendar calendar2 = Calendar.getInstance();
calendar2.setTime(time2);
calendar2.add(Calendar.DATE, 1);

最佳答案

如果您对当前时间是否“下午 2 点之后或等于下午 2 点之后,或者凌晨 1 点之前”感兴趣,那么根本不需要使用字符串解析。您可以使用:

TimeZone zone = TimeZone.getTimeZone("America/New_York");
Calendar calendar = new GregorianCalendar(zone);
int hour = calendar.get(Calendar.HOUR_OF_DAY);
if (hour < 1 || hour >= 14) {
...
}

例如,假设您确实希望它匹配下午 3 点,但您希望它匹配上午 8 点。根据你的标题,我认为这是“下午 2 点到凌晨 1 点之间”。

如果您使用的是 Java 8,我建议通过 ZonedDateTime 使用 LocalTime:

private static final LocalTime EARLY_CUTOFF = LocalTime.of(1, 0);
private static final LocalTime LATE_CUTOFF = LocalTime.of(14, 0);

ZoneId zone = ZoneId.of("America/New_York");
LocalTime time = ZonedDateTime.now(zone).toLocalTime();
if (time.compareTo(EARLY_CUTOFF) < 0 && time.compareTo(LATE_CUTOFF) >= 0) {
...
}

关于java - 如何查看时间是否在纽约时间下午 2 点到凌晨 1 点之间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26344855/

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