是在JAVA中使用本地日期时间之后

dev*_*han -1 java datetime localdate

我在JAVA中遇到了localDateTime的问题.

我使用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);
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

输出 实际

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
Run Code Online (Sandbox Code Playgroud)

预期

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
Run Code Online (Sandbox Code Playgroud)

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

ass*_*ias 6

你为什么期望18:32:10以前18:32:00

您可能会被代码中的拼写错误所误导:

if (dateTime1.isAfter(dateTime)) {
  System.out.println(dateTime + " After " + dateTime1);
                            ^^^                   ^^^
}
Run Code Online (Sandbox Code Playgroud)

应该是:

if (dateTime1.isAfter(dateTime)) {
  System.out.println(dateTime1 + " After " + dateTime);
                            ^^^                    ^^^
}
Run Code Online (Sandbox Code Playgroud)