Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中的时间比较_Java - Fatal编程技术网

java中的时间比较

java中的时间比较,java,Java,例如,我想比较字符串时间格式 是否有其他人提供的api public void test() { Stirng t1 = "10:30 AM"; // 12-hours format Stirng t2 = "11:30 AM"; // 12-hours format <or> Stirng t1 = "10:30"; // 24-hours format Stirng t2 = "11:30"; // 24-hours fo

例如,我想比较字符串时间格式 是否有其他人提供的api

public void test() {

    Stirng t1 = "10:30 AM"; // 12-hours format
    Stirng t2 = "11:30 AM"; // 12-hours format
            <or>
    Stirng t1 = "10:30"; // 24-hours format
    Stirng t2 = "11:30"; // 24-hours format

    if(t1.before(t2)) {
        System.out.println(t1 + " is before of " + t2);
    }
}
您可以尝试使用解析时间并执行比较

我想比较字符串时间格式

不要这样做,除非你真的必须这样做

总的来说,随着时间的推移,我越来越清楚地看到了许多堆栈溢出问题,越早将数据转换为自然格式越好。在本例中,自然数据格式表示一天中的某个时间,而不是字符串

因此,解析所有字符串-理想情况下使用及其方法来创建对象。然后,它们将自然地具有可比性,并且也可用于您想要做的任何其他事情。尽可能长时间地保持数据的自然形式,仅在绝对必要时将其转换为字符串或其他表示形式,例如,用于序列化到另一台机器

当然,如果你能完全避免使用字符串表示,那就更好了。

试试看

你的例子是

if (new DateTime(2012, 9, 15, 10, 30).compareTo(new DateTime(2012, 9, 15, 11, 30) < 0) {
    // first is before second date
}
编辑:按照乔恩的建议

这样会更好

if (new LocalTime(10, 30).compareTo(new LocalTime(11, 30) < 0) {
    // first time is before second time
}

我对这方面的api一无所知,但您可以将字符串转换为日期

SimpleDateFormat formatter = new SimpleDateFormat("HH:mm");
Date time =  formatter.parse("11:30");
然后只调用方法time。与othertime相比,使用Joda time

DateTimeFormatter.parseLocalTime方法提供与本地时区对应的time对象

请参阅此链接:


DateTime不适合在这里使用-没有日期组件,我们也不知道时区。我们有一个一天中的时间,它由Joda time中的LocalTime表示。啊,谢谢@JonSkeet,我不知道LocalTime。SimpleDateFormat formatter=new SimpleDateFormatHH:mm a:小写字母“a”也可以解析AM/PMright,如果你想更精确,小时数可以是HH0-23/hhh0-11/kkk1-24/kkkk1-12