如何将时间作为 "HH:MM:SS" 格式的字符串进行比较?

How to compare times as strings in the format "HH:MM:SS"?

如何检查用户是否准时。

示例: 节目开始于13:50:00,结束于14:50:00。

并且如果用户登录,并且他的时间是14:30:00,他可以登录。 如果他在 14:55:00 再次进来,他就不能再进来了。

您可以将给定的时间字符串解析为 LocalTime,然后使用 LocalTime#isBeforeLocalTime#isAfter 来查找资格。

演示:

import java.time.LocalTime;

public class Main {
    static final String startTime = "13:50:00";
    static final String endTime = "14:50:00";

    public static void main(String[] args) {
        // Test
        System.out.println(canLogin("13:50:00"));
        System.out.println(canLogin("14:30:00"));
        System.out.println(canLogin("14:55:00"));
        System.out.println(canLogin("14:50:00"));
    }

    static boolean canLogin(String arrivalTime) {
        LocalTime start = LocalTime.parse(startTime);
        LocalTime end = LocalTime.parse(endTime);
        LocalTime arrival = LocalTime.parse(arrivalTime);
        return !arrival.isAfter(end) && !arrival.isBefore(start);
    }
}

输出:

true
true
false
true

ONLINE DEMO

详细了解 modern Date-Time API* from Trail: Date Time


* 如果您正在为 Android 项目工作并且您的 Android API 水平仍然不符合 Java-8,请检查Java 8+ APIs available through desugaring. Note that Android 8.0 Oreo already provides support for java.time