Wie Millisekunden zu Date-Objekt in JJJJ-MM-TT HH ändern: mm: SS-Format wie 2017-04-12 23:14 : 52?So ändern Sie die Millilisekunde in Date-Objekt in JJJJ-MM-TT HH: MM: SS-Format
Antwort
Sie können diesen Beispielcode ausprobieren.
public class MillDateConverter {
public static String dFormat = "yyy-MM-dd HH:mm:ss";
private static SimpleDateFormat simpleDateFormat = new SimpleDateFormat(dFormat);
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
long milliSec=Long.parseLong("1086073200000");
System.out.println(milliSec);
calendar.setTimeInMillis(milliSec);
System.out.println(simpleDateFormat.format(calendar.getTime()));
}
}
Dadurch bekomme ich String simpleDateFormat.format (calendar.getTime()) gibt String zurück, aber ich will java.utill.Date Object. Ich habe versucht, simpleDateFormat.format (calendar.getTime())) nach dem Erhalt der String, aber dann bekomme ich Di 25. April 23:52:17 IST 2017 Format, das ich nicht will –
Sie fragen das Unmögliche, oder vielleicht eher , das sich widersprechende, @NilenduKumar. Ein 'java.util.Date' Objekt hat kein Format und kann kein Format haben. Es ist ein Zeitpunkt, nichts mehr. –
Sie können das nicht tun. Aus ein paar Gründen.
TL; DR: Verwenden Sie Date
nicht, Instant
verwenden. Keiner von diesen kann ein Format in ihnen haben. Die Formatierung in eine Zeichenfolge hängt von der Zeitzone ab. Daher müssen Sie eine Zeitzone auswählen.
Zuerst verstehe ich aus der Diskussion, dass Sie für ein java.util.Date
Objekt mit dem Format yyyy-MM-dd HH:mm:ss
fragen. Ein Date
Objekt hat kein Format und kann kein Format haben. Was Sie hier versuchen sollten, ist der Unterschied zwischen den Daten selbst und der Präsentation der Daten für einen Benutzer. Eine int
kann den Wert 25389 enthalten, aber nicht im Format 25389 (die interne Darstellung unterscheidet sich tatsächlich von 25389). Das gleiche int
kann einem Benutzer als 25389, 000025389, 25389 oder +25389 präsentiert werden, um nur einige von vielen Möglichkeiten zu nennen. Die Formatierung geschieht außerhalb der int
, während die int
gleich bleibt.
In ähnlicher Weise enthält ein Date
Objekt einen Zeitpunkt. Das gleiche Datum kann zum Beispiel 2017-04-12 23:14:52 oder 12. April 2017 11:14:52 PM formatiert werden. Es kann sogar für verschiedene Zeitzonen formatiert werden, was eine gute Idee wäre, wenn das System Benutzer in verschiedenen Zeitzonen hat. Alternativ können wir dem Benutzer ein Kalenderblatt und/oder eine Uhrzeit zeigen. Auch hier geschieht die Formatierung außerhalb der Date
, während die Date
bleibt gleich.
Bei der Zeitzonenausgabe konnte der gleiche Zeitpunkt, der durch den gleichen Millisekundenwert dargestellt wurde, in 2017-04-12 17:44:52 in UTC, 2017-04-12 19:44:52 in formatiert werden meine Zeitzone, 2017-04-12 23:14:52 in Asien/Kolkata Zeitzone oder sogar 2017-04-13 05:44:52 in Pacific/Auckland Zeitzone. Beachten Sie, dass im letzten Fall nicht einmal das Datum identisch ist. Es gibt also nicht nur eine Möglichkeit, Ihre Millisekunden in das von Ihnen gewünschte Format zu ändern. Wir müssen wissen, in welcher Zeitzone Sie es wünschen, bevor wir Ihnen helfen können.
Also, was ich glaube, Sie brauchen, ist nicht eine Sache, aber zwei
- Ein Weg, um Ihren Zeitpunkt in Ihrem Programm zu speichern.
- Eine Möglichkeit, Ihren Zeitpunkt in eine Zeichenfolge in JJJJ-MM-TT HH: MM: SS-Format für einen Benutzer in einer bestimmten Zeitzone zu formatieren.
Für Ihren Zeitpunkt zu speichern, verwenden Sie ein
- A
long
für die Millisekunden Wert, den Sie bereits - A
java.time.Instant
Objekt haben.
Warum habe ich nicht erwähnt java.util.Date
? Weil diese Klasse längst veraltet ist. Sein Design erwies sich sehr schnell als störend. Sie versuchten es zu reparieren, indem sie die meisten Methoden ablehnten und java.util.Calendar
einführten, aber das funktionierte auch nicht sehr gut.Basierend auf den Erfahrungen aus einer Bibliothek namens Joda-Time führten sie 2014 die Klassen java.time
in Java 8 ein. Das ist vor drei Jahren, als wir geschrieben und gezählt haben. Also IMHO sollten wir jetzt Date
und Freunde über Bord geworfen haben und angefangen haben, die neueren Klassen zu verwenden. Also lieber Instant
über Date
.
Ändern Millisekunden auf eine Instant
ist einfach:
long milliseconds = 1492019092000L;
Instant pointInTime = Instant.ofEpochMilli(milliseconds);
Für Ihre sofortige in eine Zeichenfolge für den Benutzer die Formatierung, wie gesagt, wir eine Zeitzone erfordern. Dann tun
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss");
String formattedDateTimeString = pointInTime.atZone(ZoneId.of("Asia/Kolkata"))
.format(formatter);
Sie müssen also in der gewünschten Zeitzone zu füllen, wo ich ZoneId.of("Asia/Kolkata")
setzen. Wenn Sie die aktuelle Zeitzoneneinstellung des JVM verwenden möchten, geben Sie einfach ZoneId.systemDefault()
ein. Beachten Sie jedoch, dass die Einstellung der Zeitzone auch von einem nicht verwandten Programm geändert werden kann, das in derselben JVM ausgeführt wird.
Das Ergebnis des obigen Codeausschnitt ist eine Zeichenkette wie
2017-04-12 23:14:52
PS Wenn nach der obigen Sie wirklich darauf bestehen, ist hier zu lesen, wie ein java.util.Date
von oben zu bekommen:
Date myOutdatedDateInstance = Date.from(pointInTime);
(und entschuldige mich für das Wiederholen, es hat immer noch nicht das gewünschte Format, das ist nicht möglich).
- 1. Ändern von JJJJMMTT zu MM/TT/JJJJ
- 2. Konvertieren TT/MM/JJJJ HH: MM TT in MM/TT/JJJJ HH: MM TT in C#
- 3. JJJJMMTT in Datumsformat konvertieren JJJJ/MM/TT
- 4. wie Format von JJJJ-MM-TT ändern hh: mm: ss zu TT-MM-JJJJ hh: mm am/pm
- 5. So konvertieren Sie das Format für die Uhrzeit von 'JJJJ-MM-TT' in 'MM/TT/JJJJ HH: MM: SS AM'
- 6. Wie konvertiert man JJJJ-TT-MM hh: mm: ss zu JJJJ-MM-TT hh: mm: ss?
- 7. Zeitstempelformat TT/MM/JJJJ hh: mm: ss bis JJJJ-MM-TT hh: mm: ss - MySQL
- 8. Konvertiere JJJJMMTT in mm/TT/JJJJ Format in R
- 9. Konvertieren YYYY-mm-dd in JJJJMMTT in MYSQL
- 10. Mysql: Konvertierungsdatum von 'TT/MM/JJJJ' in 'JJJJMMTT'
- 11. anzeigen HH: MM in input type Zeit
- 12. Zeitauswahl mit UltraMaskedEdit (hh: MM tt) ändert Format in HH: MM beim Betreten des Bearbeitungsmodus
- 13. Zeichenfolge von MM/TT/JJJJ in JJJJMMTT konvertieren
- 14. Wie konvertiere ich hh: mm: ss in hh: mm in SQL Server?
- 15. Wie konvertiert man die Zeichenfolge HH: MM in Joda Duration?
- 16. Javascript konvertieren Datum() in JJJJ-MM-TT HH: MM: SS
- 17. Format Datetime YYYY-MM-DD HH: mm: ss in moment.js
- 18. Zeitumwandlung in HH: MM PM/AM-Format
- 19. konvertieren HH: MM: SS Sekunden in momentjs
- 20. Formatierungsdatum-Zeit in Thymeleaf "HH: mm"
- 21. Konvertieren von HH: MM: SS in Minuten
- 22. Konvertieren von Sekunden in HH: mm: ss?
- 23. HH: MM im Bereich Bar
- 24. Wie formatiere ich die Ausgabe in DD, HH, MM
- 25. Java Verwirrung mit hh: mm
- 26. VBA: Ändern Sie die Anzahl der Minuten in hh: nn
- 27. CONVERT Zeit von {JJJJ-MM-TT HH: MM: SS} bis {JJJJ-MM-TT HH}
- 28. Wie trimmen HH: MM: SS von JJJJ-MM-TT HH: MM: SS mit Javascript oder jQuery
- 29. So senden Sie den Datetime-Parameter als TT/MM/JJJJ HH: MM: SS-Format?
- 30. So sortieren Sie nach hh: mm: ss.xx in ksh in AIX 5.3?
Bitte geben Sie die Eingabe Millisekunden? –
Verstehst du, dass ein "Date" -Objekt kein Format hat? Bitte lesen Sie https://codeblog.jonskeet.uk/2017/04/23/all-about-java-util-date/ –
Ich hoffe, diese Antwort wird Ihnen helfen https://stackoverflow.com/questions/4142313/java- Konvertieren-Millisekunden-zu-Zeit-Format –