我想显示从某点开始经过的时间。我为此使用了Chronometer
类。
但是,问题是,一小时后,它会显示“ 1:00:00”,但是我希望它显示60:00,依此类推(例如80分钟后,它应该是80:00,然后不是1:20:00)
我尝试将SimpleDateFormat
类用于“ mm:ss”格式。当然,它不会显示小时,但是一个小时后,它将显示为00:00,依此类推。
是否有解决方案,例如我可以使用的Java自定义格式化程序?
答案 0 :(得分:2)
String displayedTime = your time in format of HH:mm
String[] splittedTime = displayedTime.split(":");
String desiredTimeFormat = String.valueOf(Integer.valueOf(splittedTime[0])*60) + ":" + splittedTime[1];
答案 1 :(得分:0)
所以这是我在结合@ parliament's答案后想到的解决方案:
// This is my base time for the chronometer
baseTime = SystemClock.elapsedRealtime() - (new Date().getTime() - myInitialTimeInMillis);
Date baseDate = new Date(baseTime);
chronometer.setOnChronometerTickListener(chronometer1 -> {
baseTime += 1000;
baseDate.setTime(baseTime);
chronometer.setText(getTimeInMinuteSecondFormat(baseDate));
});
chronometer.start();
这是我获取格式化时间的常用util方法:
public static String getTimeInMinuteSecondFormat(Date date) {
String displayTime = getHourMinuteSecondFormatDate(date);
String[] splitDisplayTime = displayTime.split(":");
if (Integer.valueOf(splitDisplayTime[0]) <= 0) {
return splitDisplayTime[1] + ":" + splitDisplayTime[2];
} else {
return (Integer.valueOf(splitDisplayTime[0]) * 60) + Integer.valueOf(splitDisplayTime[1]) + ":" + splitDisplayTime[2];
}
}
像魅力一样工作!谢谢@ parliament