TimeUnit
Verwendung von I Hours
und Minutes
in Milliseconds
mit dem folgenden Code konvertieren wollte:Konvertieren Stunden und Minuten in Millisekunden und zurück in HH: mm: ss Format
int hours = 01, minutes = 0;
long milliseconds = TimeUnit.SECONDS.toMillis(TimeUnit.HOURS.toSeconds(hours) + TimeUnit.MINUTES.toSeconds(minutes));
funktioniert mit 3600000
Millisekunden
Und mit SimpleDateFormat
in HH:mm:ss
Format zurück:
SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
Date date = new Date(milliseconds);
String returnFormat = formatter.format(date); //Final Result.
und dies gibt mir ein Ergebnis von 09:59:59
, die nicht die erwartete Ausgabe ist.
Ich bin verwirrt, was ist falsch mit dem obigen Code? Ich erwarte 01:00:00
Ausgabe.
UPDATE:
Eigentlich ich den obigen Code bin mit einem einfachen Countdown-Timer mit Handler post.delayed
Funktion zu erstellen.
...
@Override
public void run() {
milliseconds -= 1000; //Remove 1 Seconds
handler.postDelayed(this,1000); //Delay in 1 Seconds
SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss"); //Create Time Formatting
Date date = new Date(milliseconds); //Put the milliseconds into Format
String returnFormat = formatter.format(date));
Log.w("COUNTDOWN", returnFormat);
}
Ich habe darüber erwartet. Das '3600000' ist eine Dauer (1 Stunde in Millisekunden), es ist nicht die Anzahl von ms seit dem Beginn der Unix-Epoche. Was erwartet 'new Date()'. Und es gibt wahrscheinlich auch ein paar schöne Zeitzonen. –
Warum formatieren Sie es nicht selbst, wenn Sie bereits die Werte für Stunden und Minuten haben? Etwas wie 'String.format ("% 02d:% 02d ", Stunden, Minuten)'. Beachten Sie auch, dass "Stunden = 01," Oktalnotation ist, d. H. Sie können nicht "08" usw. schreiben. – Thomas