java两个时间戳如何求出相差小时数,且保留小数点后两位

两个时间戳求差

很简单的一个运算法则,假设开始时间与结束时间都能取到 分别为 startTime和endTime,都为Date类型。这时候要求取它们之间的差集,就把他们相减就可以了

差集 = endTime - startTime

此时需要注意 所取得的差集是一个long型的时间戳,要转换为小时,就要将这个差集除以一小时的毫秒数。

double 小时= (double)差集/60*60*1000

注意,此时用double转换这个小时呢,就是为了将其转换为有小数点的类型,因为一小时是3600000毫秒,如果两者差集小于这个数字,那么这样运算出来就为0,与我们想得到的结果就不符了。

但得到double类型是一个很长的小数,后面可能不止两位,这时候我们就要将其来个四舍五入,小数点后保留两位(当然这个保留多少位都是自己定义的)

BigDecimal a= BigDecimal.valueOf(小时);
double waitTime = a.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();

这时候获取道得waitTime就是我们要得到的小数点后保留两位的小时数了。例如:0.5小时

具体代码如下:

long times = endTime -startTime;

double hours = (double) times/(60*60*1000);
 
BigDecimal a= BigDecimal.valueOf(hours);

double waitTime = a.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();

通过这个例子举一反三,就可以算出相差多少年、月、日、时、分、秒啦。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值