2017-08-11 14 views
-1

我正面临与JAVA localDateTime的问题。IsAfter使用本地日期时间在JAVA

我使用isAfter函数来比较两个日期时间,但只有返回正确的值,如果时间有变化但不是日期。

计划:

import java.time.LocalDateTime; 

public class LocalDatTimeVerificaiton { 

    public static void main(String[] args) throws Exception { 

     LocalDateTime dateTime=LocalDateTime.now(); 
     System.out.println(dateTime); 
     Thread.sleep(10000); 
     LocalDateTime dateTime1=LocalDateTime.now(); 
     System.out.println(dateTime1); 
     if(dateTime1.isAfter(dateTime)){ 
      System.out.println(dateTime+" After "+dateTime1); 
     } 

     if(dateTime1.isAfter(dateTime)){ 
      System.out.println(dateTime1+" After "+dateTime); 
     }else{ 
      System.out.println(dateTime1+" Not After "+dateTime); 
     } 

    } 
} 

输出 实际

2017-08-11T18:32:00.466 
2017-08-11T18:32:10.467 
2017-08-11T18:32:00.466 After 2017-08-11T18:32:10.467 
2017-08-11T18:32:10.467 After 2017-08-11T18:32:00.466 

预计

2017-08-11T18:32:00.466 
2017-08-11T18:32:10.467 
2017-08-11T18:32:00.466 After 2017-08-11T18:32:10.467 
2017-08-11T18:32:10.467 Not After 2017-08-11T18:32:00.466 

这是预期的行为还是我错过了什么?

回答

6

为什么你期望18:32:1018:32:00之前?

if (dateTime1.isAfter(dateTime)) { 
    System.out.println(dateTime + " After " + dateTime1); 
          ^^^     ^^^ 
} 

大概应该是:

if (dateTime1.isAfter(dateTime)) { 
    System.out.println(dateTime1 + " After " + dateTime); 
          ^^^     ^^^ 
} 
+0

可以突出差异或直接提到它

您可以通过一个错字在你的代码被误导?那么容易发现。 – Zabuza

+1

@Zabuza完成... – assylias