Ich habe eine lange Variable, die die Downtime einer Anwendung in Sekunden darstellt. Ich mag die Ausfallzeiten als HH:mm:ss
Problem Konvertieren von Sekunden zu HH: MM: SS Java
Long downTime = 755;
Date newD = new Date(downTime * 1000);
anzuzeigen, wenn die lange Variable auf den seit Bestehen ich es multipliziert 1000
die Millisekunden-Wert zu erhalten. Die newD
Variable ausgewertet Thu Jan 01 01:12:35 GMT 1970
Der Wert von newD
um 1 Stunde ausgeschaltet ist, 755 Sekunden sind = 00:12:35
Es war mein Verständnis, dass Sekunden * 1000 = Millisekunden auf die richtige Antwort bewerten werden. Als I seen here
Wenn ich Duration verwenden, erhalten wir die richtige Antwort.
Duration d = Duration.ofSeconds(downTime);
PT12M35S
Aber die Formatierung ist nicht so, wie ich es will.
Werfen Sie einen Blick hier, wie Dauer zu formatieren: https://stackoverflow.com/questions/266825/how-to-format-a-duration-in -java-zB-format-hmmss. – aUserHimself
Ihr aktueller Code würde funktionieren, wenn Sie in UTC wären, Ihre lokale Zeitzone muss eine Stunde vor UTC liegen. –
Wenn Sie Zugriff auf die Duration-Klasse haben, bedeutet dies auch, dass Sie Java 8 verwenden. Verwenden Sie daher nicht mehr die alte Date-Klasse. Verwenden Sie Klassen aus dem Paket java.time. –