Convert date string zu einem bestimmten Datum im format "dd-MM-yyyy" in Java
Habe ich mehrere Kontakte mit Geburtsdaten und alle Einstellungen für die Synchronisation mit dem mobilen Gerät. Das problem ist jetzt alle Kontakte haben unterschiedlich Geburtstag Formate, und ich möchte, um alle Geburtstags-Daten in einem bestimmten format wie "dd-MM-yyyy".
So zum Beispiel, ein synchronisierter Kontakt hat Geburtstag wie "1990-02-07" oder "1988-06-15T22:00:00.000 Z" oder "12-02-1990" etc...
Dann werden alle diese Daten angezeigt werden soll, in ein bestimmtes format "dd-MM-yyyy".
Also, wie kann ich dieses Problem beheben?
Jede Anregung wird dankbar sein.
Versuchen Sie eine Suche auf Java date format, es gibt Hunderte ähnliche Fragen in dieser Angelegenheit schon...
mögliche Duplikate von String Datum in Anderes Format in Java
mögliche Duplikate von String Datum in Anderes Format in Java
InformationsquelleAutor Rushabh Patel | 2012-11-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
ISO 8601
Dass ist das eigentliche problem: die Speicherung von Datum-Uhrzeit-Werte in verschiedenen Formaten.
Beim serialisieren Datum-Zeit-Werte, um text, verwenden Sie immer die standard - ISO 8601 Formate. Diese Formate sind sinnvoll und praktisch, Vermeidung von Mehrdeutigkeit, die sehr leicht zu analysieren, mit der Maschine sowie gut lesbar durch den Menschen über die Kulturen hinweg.
Den java.Zeit Klassen verwenden diese standard-Formate, die standardmäßig beim Parsen/generieren von strings.
java.Zeit
Den modernen Ansatz nutzt die java.Zeit Klassen, verdrängen die lästige alte legacy-Datum-Zeit-Klassen. Vermeiden Sie das Erbe
Date
,Calendar
,SimpleDateFormat
und Verwandte Klassen.Analyse alle denkbar Datum-Zeit-format ist nicht möglich, da der Mehrdeutigkeit. Zum Beispiel ist
01-02-1990
Vertretung der 2. Januar oder 1. Februar?Können Sie denke, wenn Sie es wünschen, kann aber sein, schlecht beraten, je nachdem, wie wichtig die Genauigkeit für Ihr Unternehmen problem.
Definieren eine Reihe von Formatierungs-Muster mit
DateTimeFormatter
. Versuchen Sie, jede. Wenn dieDateTimeParseException
geworfen wird, gehen Sie zum nächsten Muster, bis eine funktioniert.Können Sie string-Länge um zu helfen, die raten.
Über java.Zeit
Den java.Zeit framework ist in Java 8 und höher. Diese Klassen verdrängen die lästige alte legacy Datum-Zeit-Klassen wie
java.util.Date
,Calendar
, &" = SimpleDateFormat
.Den Joda-Time Projekt, jetzt in Wartung-Modus, rät der migration auf die java.Zeit Klassen.
Um mehr zu erfahren, siehe die Oracle Tutorial. Und die Suche Stack Overflow für viele Beispiele und Erklärungen. Spezifikation JSR 310.
Können Sie exchange java.Zeit Objekte direkt mit Ihrer Datenbank. Verwenden Sie eine JDBC-Treiber kompatibel mit JDBC 4.2 oder später. Keine Notwendigkeit für Streicher, keine Notwendigkeit für
java.sql.*
Klassen.Wo erhalten Sie die java.Zeit-Klassen?
Den ThreeTen-Extra Projekt erweitert die java.mal mit zusätzlicher Klassen. Dieses Projekt ist ein Testgelände für mögliche künftige Erweiterungen zu java.Zeit. Sie finden möglicherweise einige nützliche Klassen, die hier wie
Interval
,YearWeek
,YearQuarter
, und mehr.InformationsquelleAutor Basil Bourque
Einfach mit " = SimpleDateFormat-Klasse. So etwas wie:
Hier können Sie sehen, details und alle unterstützte Formate:
http://developer.android.com/reference/java/text/SimpleDateFormat.html
Auch, wenn Sie angeben, ein format-string, " = SimpleDateFormat-Klasse sollte komplett sein, fehlt ein Teil des Datum bei 'null'. Nehmen Sie einen Nachweis
FYI, ist die lästige alte Datum-Zeit-Klassen wie
java.util.Date
,java.util.Calendar
, undjava.text.SimpleDateFormat
sind jetzt legacy, überlagert von der java.Zeit Klassen gebaut in Java 8 & Java 9. Siehe Einführung Oracle.InformationsquelleAutor kinghomer
Ich irgendwie verstehen, was Ihr problem ist hier. Sie können versuchen, den langen Weg wie die Aufteilung der strings, die mit "-" und speichern ihn im array, dann prüfen Sie jeden string im array, parse Sie in int und führen Sie dann bedingte Anweisungen.
unter der Annahme, dass diejenigen, die Sie gab, hat die folgenden Formate
"1990-02-07" Jahr-Monat-Tag
"1988-06-15T22:00:00.000 Z" Jahr-Monat-dayTtimeZ
"12-02-1990" Monat-Tag-Jahr
können Sie versuchen, so etwas wie dieses.
gut, ich denke, Sie haben, um zu wissen, das format, mit denen Sie synchronisiert Mann. Überprüfen Sie dieses stackoverflow.com/questions/9291176/... ich glaube, dass der Monat IMMER vor dem Tag. Sie haben die letzten drei Formate hier: Monat-Tag-Jahr , Jahr-Monat-Tag und Jahr-Monat-dayTtimeZ.
in den vorherigen Kommentar, ich sagte, der Monat immer vor dem Tag. das ist für alles, was kommt aus java. Und ich bearbeitete meine Antwort. Sie können versuchen, dass man sich...
InformationsquelleAutor Leonid