2017-08-11 16 views
-1

私はJAVAのlocalDateTimeの問題に直面しています。IsAfterローカル日付時刻の使用JAVA

isAfter関数を使用して2つの日付時刻を比較していますが、時刻は変更されていて日付は変更されていない場合は正しい値を返します。

プログラム:

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 done ... – assylias