微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java-如何查找两个本地时间之间的秒数?

Java或Scala中,查找两个LocalTime之间的秒数的最佳方法是什么?

如果我有11:20:00.000Z和11:21:00.500Z,我希望结果是61秒,而不是60秒.

解决方法:

您可以使用math.round()计算以毫秒为单位的时差并以秒为单位舍入结果

import java.time.{LocalTime, OffsetTime}
import java.time.temporal.ChronoUnit.MILLIS

val t1 = LocalTime.parse("11:20:00.000")
val t2 = LocalTime.parse("11:21:00.500")

math.round(MILLIS.between(t1, t2) / 1000.0)
// res1: Long = 61

[更新]

假设要比较的时间在同一时区,则上述忽略时区的计算效果很好.如果涉及不同的时区,则应使用@studx答案中建议的OffsetTime

val t1 = OffsetTime.parse("11:20:00.000Z")      // UTC +00:00
val t2 = OffsetTime.parse("11:21:00.500-01:00") // UTC -01:00

math.round(MILLIS.between(t1, t2) / 1000.0)
// res2: Long = 3661

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐