如何将小数转换为时间格式?科特林

时间:2020-08-11 20:40:24

标签: android kotlin

val duration = df.format(videoView!!.duration.toLong() / 100000.0)

持续时间以小数形式给出答案,例如0.45,我想设为0:45。

(这些信息以秒为单位,我不想显示单位。将此信息写在方括号中仅供参考)

3 个答案:

答案 0 :(得分:0)

将毫秒数除以100,000并不能真正给您任何收益。最好除以1000(而不是除以1000.0。因为您可能不需要毫秒,也可以四舍五入到最接近的整数值,但这取决于您):

fptr

然后,您可以将val durationInSeconds:Int = df.format(videoView!!.duration.toLong() / 1000)除以60(结果是整数)来计算分钟数。

duratinInSeconds

然后您计算秒数:

val minutes:Int = durationInSeconds/60

最后,您将val seconds:Int = durationInSeconds%60minutes组合在一起:

seconds

答案 1 :(得分:0)

最简单的方法是使用replace方法:

val time = "$duration".replace(".", ":")

或者,如果您愿意,也可以使用Java SimpleDateFormat or DateTimeFormatter。因此可以使用该模式并使程序更灵活。

答案 2 :(得分:0)

我将首先尝试以秒或毫秒为单位获取时间值,然后尝试将其格式化为以下格式:

//t is given in seconds
fun formatTime(t: Int) : String{
    var hours = t / 3600
    var minutes = (t % 3600) / 60
    var seconds = t % 60

    return "$hours:$minutes:$seconds"
}
print(formatTime(12345)) //prints 3:25:45