首页 > 解决方案 > 如何计算 2 个时间戳变量之间的持续时间?

问题描述

我想计算 2 个时间戳变量之间的持续时间并以 HH:MM:SS 格式输出

val start_time = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(LocalDateTime.now)
val sourceFormat = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
val start_time_dt = sourceFormat.parse(start_time)
val end_time = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(LocalDateTime.now)
val end_time_dt = sourceFormat.parse(end_time)

我正在尝试这样做:

Duration.between(end_time_dt, start_time_dt)

但我收到以下错误:

found   : java.util.Date
required: java.time.temporal.Temporal

标签: scalajava-time

解决方案


你把旧java.util.Date的和新的混在一起了java.time.LocalDateTime

import java.time.{LocalDateTime, Duration}

val start = LocalDateTime.now()
val end   = LocalDateTime.now()
val dur   = Duration.between(start, end)

dur.getNano()     //res0: Int = 390318000
dur.getSeconds()  //res1: Long = 0
dur.isZero()      //res2: Boolean = false

您还应该注意,您只需要Formatterwhen 从/到您的日期和时间的特定文本表示。由于您发布的代码示例既不从 date-time 读取String,也不打印出 date-time String,因此我没有在此处包含任何格式。


推荐阅读