Korrekt 获取时间字符串与 Kotlin 中当前时间之间的持续时间的方法

问题描述 投票:0回答:1

在 Kotlin 中获取时间字符串和实际时间之间的持续时间的正确且最简单的方法是什么?

我有以下时间字符串(timeStr):“18:00:00” 最后我喜欢这样的字符串:“x 小时 y 分钟到...”

我目前的解决方案:

val diff: Long = (LocalTime.parse(timeStr).toSecondOfDay() - LocalTime.now().toSecondOfDay()).toLong()
val duration: LocalTime = LocalTime.ofSecondOfDay(diff)
outStr = duration.hour + "hours and " + duration.minute + " minutes to ..."

我知道这个解决方案很容易出错,所以我正在寻找一个干净的解决方案。我最近才开始使用 Kotlin,还不熟悉其可能性。

kotlin duration localtime
1个回答
0
投票

正如“匿名”评论的那样,您可以使用

Duration
类来实现此目的:

fun getDuration(timeStr: String): String {
    val time = LocalTime.parse(timeStr)
    val now = LocalTime.now()
    val duration = Duration.between(now, time)
    val hours = duration.toHours()
    val minutes = duration.minusHours(hours).toMinutes()
    return if (hours == 0L) {
        "$minutes minutes to ..."
    } else if (minutes == 0L) {
        "$hours hours to ..."
    } else {
        "$hours hours and $minutes minutes to ..."
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.