CountdownTimer无法正常工作(时间错误)

时间:2019-06-25 09:48:43

标签: android kotlin android-date android-timer

我在我的应用中使用CountdownTimer来显示剩余时间,直到特定的Date。但是Date距当前时间只有2个小时,但是如果我将millisUntilFinished转换为小时,则表示9个小时。 Date采用UTC格式。

remainingTimer = object : CountDownTimer(dateTime.time, 1000) {
            override fun onTick(millisUntilFinished: Long) {
                remTime = millisUntilFinished
                notifyChanged(PAYLOAD_UPDATE_REM_TIME)
            }

            override fun onFinish() {
                swapTimers()
            }

        }.start()

val hours = ((remTime / (1000 * 60 * 60)).rem(24))

1 个答案:

答案 0 :(得分:0)

在这里您必须指定计时器时间要运行多长时间(从现在开始2小时= 2 * 60 * 60 * 1000毫秒)     如果您将日期转换为毫秒,则返回的日期将无法按您想要的方式工作,

remainingTimer = object : CountDownTimer(2*60*60*1000, 1000) {
                override fun onTick(millisUntilFinished: Long) {
                    remTime = millisUntilFinished
                    notifyChanged(PAYLOAD_UPDATE_REM_TIME)
                }

                override fun onFinish() {
                    swapTimers()
                }

            }.start()

    val hours = ((remTime / (1000 * 60 * 60)).rem(24))