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

如何将毫秒转换为模式 mm:ss for kotlin

如何解决如何将毫秒转换为模式 mm:ss for kotlin

我有以下代码,但我不明白我想要的结果是如何出错的, 起初我有一个总时间应该是 Long (Milisecond) 类型,然后我需要将它转换为格式 mm: ss 不是格式 (HH: mm: ss),那么谁能帮我转换它转 mm:ss 格式

private fun startCounting() {
       var i = 60100
       val totalSeconds =
           TimeUnit.MINUTES.toSeconds(i.toLong())
       Handler().postDelayed({
           val tickSeconds = 0
           for (second in tickSeconds until totalSeconds) {
               val time =
                   String.format(
                       "%02d:%02d",TimeUnit.MILLISECONDS.toMinutes(second),TimeUnit.MILLISECONDS.toSeconds(second) % TimeUnit.MINUTES.toMinutes(1)
                   )
             
           }

       },1000)
   }

谢谢

解决方法

分钟数是毫秒数除以 60000。秒数是毫秒数除以 1000。但是要从秒数中去除分钟,您需要将其除以 60 的余数。

val minutes = i / 1000 / 60
val seconds = i / 1000 % 60
val formatted = String.format("%02d:%02d",minutes,seconds)

看起来您可能正在尝试每秒显示一次更新值的倒计时。但是在 for 循环中同步循环数字只会立即显示最终值。相反,您可以使用具有延迟的协程来做到这一点:

private fun startCounting() = lifecycleScope.launch {
    val startTime = System.currentTimeMillis()
    var remainingTime = 60100L 
    while (remainingTime >= 0) {
        val minutes = remainingTime / 1000 / 60
        val seconds = remainingTime / 1000 % 60
        myTextView.text = String.format("%02d:%02d",seconds)
        delay(1000L)
        remainingTime = (60100L - System.currentTimeMillis() + startTime)
    }
}
,

使用 kotlin.time 包中的实验性 Duration 类型,您可以先将毫秒数转换为 Duration,然后使用其 toComponents 方法将其拆分为分钟和秒:

import kotlin.time.*

fun main() {
    val millis = 260100
    val duration = millis.toDuration(DurationUnit.MILLISECONDS)
    val timeString = 
        duration.toComponents { minutes,seconds,_ -> 
            String.format("%02d:%02d",seconds)
        }
    println(timeString)  // prints 04:20
}

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

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?