Как показать время в минутах: второй формат, с минутами, включая часы? - PullRequest
0 голосов
/ 05 октября 2018

Я хочу показать время, прошедшее с определенной точки зрения, на мой взгляд.Для этого я использую класс Chronometer.

Проблема, однако, в том, что через час он показывает «1:00:00», но я хочу, чтобы он показывал 60:00 ии так далее (например, через 80 минут должно быть 80:00, а не 1:20:00)

Я пытался использовать класс SimpleDateFormat с форматированием "mm: ss".Конечно, он не показывает час, но через час он просто переходит к 00:00 и т. Д.

Есть ли решение для этого, такое как специальный форматировщик в Java, который я могу использовать?

Ответы [ 2 ]

0 голосов
/ 08 октября 2018

Так что это решение, которое я придумал после объединения @ ответа парламента :

// 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();

Это мой обычный метод для получения отформатированного времени:

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];
    }
}

Работает как шарм!Спасибо @ парламенту

0 голосов
/ 05 октября 2018
String displayedTime = your time in format of HH:mm
String[] splittedTime = displayedTime.split(":");
String desiredTimeFormat = String.valueOf(Integer.valueOf(splittedTime[0])*60) + ":" + splittedTime[1];
...