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
那么什么是最好的比较方法,因为isBefore比before方法花费更多的时间,但是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);