java求差值的函数_在Java中,如何在2个日期之间获得秒的差值?

我想提供现代的答案。当被问到这个问题时,其他的答案都很好,但时间还在流逝。今天我建议你用

java.time

, the modern Java date and time API

.

ZonedDateTime aDateTime = ZonedDateTime.of(2017, 12, 8, 19, 25, 48, 991000000, ZoneId.of("Europe/Sarajevo"));

ZonedDateTime otherDateTime = ZonedDateTime.of(2017, 12, 8, 20, 10, 38, 238000000, ZoneId.of("Europe/Sarajevo"));

long diff = ChronoUnit.SECONDS.between(aDateTime, otherDateTime);

System.out.println("Difference: " + diff + " seconds");

印刷品:

Difference: 2689 seconds

ChronoUnit.SECONDS.between()

两作品

ZonedDateTime

物体或两个

OffsetDateTime

两个

LocalDateTime

S等。

如果您需要的不仅仅是秒,您应该考虑使用

Duration

等级:

Duration dur = Duration.between(aDateTime, otherDateTime);

System.out.println("Duration: " + dur);

System.out.println("Difference: " + dur.getSeconds() + " seconds");

印刷品:

Duration: PT44M49.247S

Difference: 2689 seconds

两行中的前者以ISO 8601格式打印持续时间,输出表示44分钟和49.247秒的持续时间。

为什么选择java.time?

这个

Date

在其他几个答案中使用的课程现在已经过时很久了。Joda Time也用于一对夫妇(可能还有问题),现在处于维护模式,没有计划进行重大改进,开发人员正式建议迁移到

Java.时间

也被称为JSR-310。

问:我能用我的Java版本使用现代API吗?

如果使用至少Java

你可以。

在Java 8和以后,新的API是内置的。

在Java 6和7中得到

the ThreeTen Backport

,新类的后口(threeten for

JSR 310

)

在android上,使用android版的threeten backport。它被称为threetenabp,在

this question: How to use ThreeTenABP in Android Project

.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值