LocalDateTime:判断时间大小用>0,<0,==0
@Test
public void test13() throws InterruptedException {
//
String s="2022-06-28T15:48:42.161";
System.out.println(s);
LocalDateTime parse = LocalDateTime.parse(s);
System.out.println(parse);
// Thread.sleep(10000);
/*
*LocalDateTime的compareTo()首先会获取到年月日取比较
* 1.获取到年月日取比较,年月日是通过-去比较,会返回自然数,例:2022和2020比较会返回2,2023和2020比较会返回3
* 2.只有当年月日相等时才会进行秒分时的比较,秒分时是利用Integer.compare()去比较,所以只会返回0,1,-1
*/
System.out.println(parse.compareTo(LocalDateTime.now()));
}
源码如下:

年月日比较:

秒分时等的比较:

Date:判断时间大小可用==1,==-1,==0
@Test
public void test14() throws InterruptedException {
Date date = new Date();
Thread.sleep(10000);
/*
*获取毫秒值后进行比较,返回值只有0,1,-1
*/
System.out.println(date.compareTo(new Date()));
}
源码如下:

本文探讨了Java中LocalDateTime与Date两种时间类型如何进行比较,并通过示例代码展示了compareTo()方法的使用。文章详细解释了compareTo()在年月日和秒分时比较的内部逻辑,并给出了相关源码分析。同时,对比了Date类型通过毫秒值比较的时间大小判断方法。
4186

被折叠的 条评论
为什么被折叠?



