Zeit in Sekunden, um benutzerdefinierte string-format
Ich versuche, einen double-Wert mit Sekunden, um zu konvertieren, um ein benutzerdefiniertes Zeit format. Ich habe versucht SimpleDate Format, aber das funktioniert nicht...
Habe ich einen double-Wert in diesem format: 407.33386569554585
(entspricht 407 Sekunden und 333 Millisekunden ...).
Muss ich, dass in diesem format: HH/MM/SS.MS
Wie soll ich das tun?
Vielen Dank im Voraus!
- Wie kommt der Wert in das double-Variablen? Und wie ist der double-Wert konstruiert - ich sehe keine Sekunden mehr 🙂
- Vereinbart, was bedeutet, dass doppelt vertreten?
- Können Sie ein paar Ideen hier: stackoverflow.com/questions/266825/...
- Es sind Sekunden und Millisekunden eg 407 Sekunden und 333865.... Millisekunden
Du musst angemeldet sein, um einen Kommentar abzugeben.
Multiplizieren durch 1.000, dann gegossen, um eine
long
und konstruieren Sie ein Date mit ihm.Von hier aus können Sie mit einem " = SimpleDateFormat, um die Zeichenfolge, die Sie möchten.
Locale
desDate
oder ändern Sie dieLocale
nach dem Bau. Sicher nicht. Im Grunde, dielong
Sie übergeben, wird interpretiert als die Anzahl von Millisekunden, die vergangen sind, seit Jan 1, 1970 GMT. Wenn diedouble
Wert für die Zeit, die Sie haben, ist nicht eine Anzahl von Sekunden seit der Epoche, die Sie ausführen müssen weitere Transformationen, die es so machen.Und in Java 8 Stil (wenn Sie möchten, um zu vermeiden, das Datum deprecation-Warnung):
Hier ist ein wenig code, den wir verwenden, dass können Sie leicht anpassen. Die Umsetzung der unten drucken, die einen Wert als 00days 00h00m00s00ms:
Nur um Tim ' s Antwort: auf die richtige Zeichenfolge, unabhängig von Ihrer Zeitzone, verwenden Sie einfach
SimpleDateFormat.setTimeZone()
:Werden und sicher sein, zu konsultieren
DateFormat.setTimeZone
javadoc zu wissen, Wann dietimeZone
überschrieben.