Probieren Sie einfach diesen Beispielcode aus: -
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class Test {
/**
* Main Method
*/
public static void main(String[] args) {
System.out.println(getDate(82233213123L, "dd/MM/yyyy hh:mm:ss.SSS"));
}
/**
* Return date in specified format.
* @param milliSeconds Date in milliseconds
* @param dateFormat Date format
* @return String representing date in specified format
*/
public static String getDate(long milliSeconds, String dateFormat)
{
// Create a DateFormatter object for displaying date in specified format.
SimpleDateFormat formatter = new SimpleDateFormat(dateFormat);
// Create a calendar object that will convert the date and time value in milliseconds to date.
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(milliSeconds);
return formatter.format(calendar.getTime());
}
}
Ich hoffe diese Hilfe ...
java.util.Date
,java.util.Calendar
undjava.text.SimpleDateFormat
sind jetzt Erbe, durch die verdrängte java.time Klassen. Ein Großteil der Funktionen von java.time wird im ThreeTen-Backport- Projekt auf Java 6 und Java 7 zurückportiert . Weiter angepasst für frühere Android im ThreeTenABP- Projekt. Siehe Verwendung von ThreeTenABP… .Konvertieren Sie den Millisekundenwert in eine
Date
Instanz und übergeben Sie ihn an den ausgewählten Formatierer.quelle
Rufen Sie diese Funktion auf
quelle
quelle
Versuchen Sie, diesen Code könnte helfen, ändern Sie ihn an Ihre Bedürfnisse
quelle
Ich finde endlich normalen Code, der für mich funktioniert
quelle
tl; dr
java.time
Der moderne Ansatz verwendet die java.time- Klassen, die die problematischen alten alten Datums- und Uhrzeitklassen ersetzen, die von allen anderen Antworten verwendet werden.
Angenommen, Sie haben
long
einige Millisekunden seit dem Epochenbezug des ersten Augenblicks von 1970 in UTC, 1970-01-01T00: 00: 00Z…Um ein Datum zu erhalten, ist eine Zeitzone erforderlich. Für jeden Moment variiert das Datum weltweit je nach Zone.
Extrahieren Sie einen Nur-Datum-Wert.
Generieren Sie einen String, der diesen Wert im Standardformat ISO 8601 darstellt.
Generieren Sie einen String im benutzerdefinierten Format.
Tipp: Lassen Sie java.time automatisch für Sie lokalisieren, anstatt ein Formatierungsmuster fest zu codieren. Verwenden Sie die
DateTimeFormatter.ofLocalized…
Methoden.Über java.time
Das java.time- Framework ist in Java 8 und höher integriert. Diese Klassen verdrängen die lästigen alten Legacy - Datum-Zeit - Klassen wie
java.util.Date
,Calendar
, &SimpleDateFormat
.Das Joda-Time- Projekt, das sich jetzt im Wartungsmodus befindet , empfiehlt die Migration zu den Klassen java.time .
Weitere Informationen finden Sie im Oracle-Lernprogramm . Suchen Sie im Stapelüberlauf nach vielen Beispielen und Erklärungen. Die Spezifikation ist JSR 310 .
Sie können java.time- Objekte direkt mit Ihrer Datenbank austauschen . Verwenden Sie einen JDBC-Treiber, der mit JDBC 4.2 oder höher kompatibel ist . Keine Notwendigkeit für Strings, keine Notwendigkeit für
java.sql.*
Klassen.Woher bekomme ich die java.time-Klassen?
Das ThreeTen-Extra- Projekt erweitert java.time um zusätzliche Klassen. Dieses Projekt ist ein Testfeld für mögliche zukünftige Ergänzungen von java.time. Sie können einige nützliche Klassen hier wie finden
Interval
,YearWeek
,YearQuarter
, und mehr .quelle
Kurz und effektiv:
quelle
quelle
quelle
Ich habe seit einiger Zeit nach einem effizienten Weg gesucht, dies zu tun, und das Beste, was ich gefunden habe, ist:
Vorteile:
Nachteile:
Sie können das Objekt java.text.DateFormat zwischenspeichern, es ist jedoch nicht threadsicher. Dies ist in Ordnung, wenn Sie es im UI-Thread verwenden.
quelle
quelle
Verwenden Sie SimpleDateFormat für Android N und höher. Verwenden Sie den Kalender für frühere Versionen, zum Beispiel:
Ausgabe:
Dateiname vor: 2019-04-12-07: 14: 47 // SimpleDateFormat verwenden
Dateiname nach: 2019-4-12-7: 13: 12 // Kalender verwenden
quelle
Dies ist der einfachste Weg mit Kotlin
quelle
SimpleDateFormat
Klasse zu benutzen . Zumindest nicht als erste Option. Und das nicht ohne Vorbehalt. Heute haben wir so viel besser injava.time
der modernen Java-API für Datum und Uhrzeit und derenDateTimeFormatter
. Ja, Sie können es auf Android verwenden. Verwenden Sie für ältere Android-Geräte das Desugaring oder lesen Sie die Verwendung von ThreeTenABP in Android Project .hh
? Bitte überprüfen Sie hier den Unterschied zwischen Groß- und Kleinschreibung.return Instant.ofEpochMilli(millis).atZone(ZoneId.systemDefault()).format(DateTimeFormatter.ofPattern(DATE_FORMAT, Locale.US))
. Ja, es ist länger, weil es mehr Informationen darüber gibt, was los ist, also ist es ein Vorteil.Sie können java.util.Date in Millisekunden erstellen. Und dann mit java.text.DateFormat in einen String konvertiert.
quelle