java两个月之后_Java:跨越两个月的两个日期之间的差异

我有以下代码可以成功获取两天之间的差异(以天,小时,分钟,秒为单位):

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-DD HH:mm:ss");

Date d1 = format.parse(startTime);

Date d2 = format.parse(endTime);

long diff = d2.getTime() - d1.getTime();

long diffSeconds = diff / 1000 % 60;

long diffMinutes = diff / (60 * 1000) % 60;

long diffHours = diff / (60 * 60 * 1000) % 24;

long diffDays = diff / (24 * 60 * 60 * 1000);

System.out.println("Start: " + startTime);

System.out.println("End: " + endTime);

System.out.println(diffDays + " days, " + diffHours + " hours, " + diffMinutes + " minutes, " + diffSeconds + " seconds");

但是,当日期跨入另一个月份时,这将不起作用,例如:

Start: 2013-07-31 10:15:01

End: 2013-08-01 11:22:33

-29 days, -22 hours, -52 minutes, -28 seconds

Start: 2013-05-31 10:15:01

End: 2013-08-01 11:22:33

-29 days, -22 hours, -52 minutes, -28 seconds

是否可以智能地跨越几个月并获得准确的时差?我对Joda熟悉,但是我想坚持使用标准Java API,除非没有Joda这样的东西是不可能的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值