如何在Android TimeUnit中获取运行时间



我有一个5分钟的计时器。如果我完成30秒,显示为4:30,但我希望设置30秒。

减少时间的代码

String timeReminder= String.format(Locale.ENGLISH , "%02d:%02d" , TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished) , TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished)) );
timerText.setText(timeReminder);

我只想要提醒时间。

java.time

您可以使用java.time.Duration,它以ISO-8601标准为模型,并与Java-8一起引入,作为JSR-310实现的一部分。在Java-9中引入了一些更方便的方法。

import java.time.Duration;
import java.util.Locale;
public class Main {
public static void main(String[] args) {
Duration total = Duration.ofMinutes(5);
Duration elapsed = Duration.ofSeconds(30);
Duration remaining = total.minus(elapsed);
// ###############Java 8###########################
String timeReminder = String.format(Locale.ENGLISH, "%02d:%02d", remaining.toMinutes(),
remaining.toSeconds() % 60);
System.out.println(timeReminder);
// ################################################
// ###############Java 9###########################
timeReminder = String.format(Locale.ENGLISH, "%02d:%02d", remaining.toMinutesPart(), remaining.toSecondsPart());
System.out.println(timeReminder);
// ################################################
}
}

输出:

04:30
04:30

跟踪:日期时间了解有关现代日期时间API的更多信息。

  • 无论出于何种原因,如果您必须坚持使用Java 6或Java 7,您可以使用ThreeTen BackportJava.time的大部分功能向后移植到Java 6&7
  • 如果您正在为Android项目工作,并且您的Android API级别仍然不符合Java-8,请检查通过desugaring和如何在Android项目中使用ThreeTenABP提供的Java 8+API

好吧,我想你要找的词是逝去的时间,然而,你的逻辑似乎不正确。

这是一个例子,

Long startTime = System.currentTimeMillis();
Long estimatedTime = TimeUnit.MINUTES.toMillis(10); // For 10 minutes

计算运行时间:

Long elapsedTime = System.currentTimeMillis() - startTime;  

计算剩余时间:

Long remainingTime = estimatedTime - System.currentTimeMillis();

现在你有两个时间在毫秒,你可以很容易地转换和格式化为分钟:秒格式。

相关内容

  • 没有找到相关文章

最新更新