Java时间对比compareTo用法

Calendar a= Calendar.getInstance();
a.set(2021, 05,28, 19,50, 2);
//参数为年 月 日 时 分 秒
a.set(Calendar.MILLISECOND, 0);
//设置毫秒
Calendar c= Calendar.getInstance();
c.set(2021, 05,28, 19,50, 3);
c.set(Calendar.MILLISECOND, 0);
System.out.println(a.compareTo(c));
//a比c早,返回-1,
//a与c相同,返回0
//a比c晚,返回1


//对比Timestamp时间类型
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Timestamp tFlowTime_Find = new Timestamp(date.getTime());
Timestamp time = new Timestamp(sdf.parse("2021-05-28 18:51:30"));
int difference = time.compareTo(tFlowTime_Find);
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中,比较两个对象的大小通常使用compareTo方法。对于时间对象,Java提供了很多类,例如Date、Calendar、LocalDateTime等,不同类的compareTo方法实现方式也不同。以LocalDateTime类为例,它实现了Comparable接口,其中定义了compareTo方法,用于比较两个LocalDateTime对象的大小。 LocalDateTime类中的compareTo方法是这样定义的: ```java public int compareTo(LocalDateTime other) { int cmp = (year - other.year); if (cmp == 0) { cmp = (month - other.month); if (cmp == 0) { cmp = (day - other.day); if (cmp == 0) { cmp = (hour - other.hour); if (cmp == 0) { cmp = (minute - other.minute); if (cmp == 0) { cmp = (second - other.second); if (cmp == 0) { cmp = (nano - other.nano); } } } } } } return cmp; } ``` 该方法首先比较年份,如果年份相同,则比较月份,如果月份相同,则比较日期,以此类推,直到比较完所有字段。如果所有字段都相同,则返回0;如果前一个对象的某个字段比后一个对象的相应字段更小,则返回负数;如果前一个对象的某个字段比后一个对象的相应字段更大,则返回正数。 因此,当我们使用o1.compareTo(o2)方法比较两个LocalDateTime对象时,如果o1表示的时间早于o2,返回负数;如果o1表示的时间晚于o2,返回正数;如果o1和o2表示的时间相同,返回0。这个方法也可以用于其他实现了Comparable接口的类中,只需要按照该类的compareTo方法的定义来使用即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值