Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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 比较日期时,有什么更好的方法before()或isBefore()呢_Java_Date_Java 8 - Fatal编程技术网

Java 比较日期时,有什么更好的方法before()或isBefore()呢

Java 比较日期时,有什么更好的方法before()或isBefore()呢,java,date,java-8,Java,Date,Java 8,我用两种方法比较两个日期(旧的和新的) 输出: date1 is before d2 17//for using before date1 is before d2 68//for using isBefore 那么什么是最好的比较方法,因为isBefore比before方法花费更多的时间,但是isBefore出现在Java8中,有人能告诉我们何时使用isBefore吗 我也检查了这个,但我想知道性能的情况 比较日期时,它的效率要高得多。 以下是您可以使用的示例: LocalDateT

我用两种方法比较两个日期(旧的和新的)

输出:

date1 is before d2
17//for using before
date1 is before d2
68//for using isBefore
那么什么是最好的比较方法,因为isBeforebefore方法花费更多的时间,但是isBefore出现在Java8中,有人能告诉我们何时使用isBefore吗

我也检查了这个,但我想知道性能的情况


比较日期时,它的效率要高得多。 以下是您可以使用的示例:

    LocalDateTime timeNow = LocalDateTime.now();
    LocalDateTime timeAfterSometime = timeNow.plusHours(4).plusMinutes(11);

    System.out.println("timeNow = "+timeNow);
    System.out.println("timeAfterSometime = "+timeAfterSometime);

    long minutesDiff = ChronoUnit.MINUTES.between(timeNow, timeAfterSometime); // 251
    long hoursDiff = ChronoUnit.HOURS.between(timeNow, timeAfterSometime); // 4

    System.out.println("minutesDiff = "+minutesDiff);
    System.out.println("hoursDiff = "+hoursDiff);
输出结果如下:

timeNow=2017-02-13T16:05:00.617 TimeAfterMetime=2017-02-13T20:16:00.617 分钟差=251 小时差=4


使用新的
LocalDate
LocalTime
LocalDateTime
都是不可变且线程安全的。它们使用起来更安全。

这绝对不是进行性能测量的最佳方法……所以当我们使用isBefore()时@Andremoniyyou在使用
java.time.LocalDate
时使用
isBefore()
,在使用
java.util.Date
时使用
before()。但我怀疑在任何实际应用程序中,日期比较性能是否会起到重要作用。日期解析也非常快。对不起,我的senerio不一样谢谢你的努力谢谢@Eric的建议意味着你是在LocalDate日期比较之前说的safe@jitendravarshney这里的意思是新的API(
java.time
)比以前的API(
java.util.Date
)好得多。如果您使用Java8,请使用
Java.time
而不是
Java.util.Date
Java.util.Calendar
。ok@OlivierGrégoire Java8 DateTimeFormatter具有与旧日期相比的强大功能
    LocalDateTime timeNow = LocalDateTime.now();
    LocalDateTime timeAfterSometime = timeNow.plusHours(4).plusMinutes(11);

    System.out.println("timeNow = "+timeNow);
    System.out.println("timeAfterSometime = "+timeAfterSometime);

    long minutesDiff = ChronoUnit.MINUTES.between(timeNow, timeAfterSometime); // 251
    long hoursDiff = ChronoUnit.HOURS.between(timeNow, timeAfterSometime); // 4

    System.out.println("minutesDiff = "+minutesDiff);
    System.out.println("hoursDiff = "+hoursDiff);