Ich habe eine LocalDate-Variable namens Datum. Wenn ich sie drucke, wird 1988-05-05 angezeigt. Ich muss diese konvertieren, um sie als 05. Mai 1988 zu drucken. Wie geht das?
Schauen Sie sich die DateTimeFormatter- Klasse an. Es gibt sogar Beispiele für die Konvertierung in und von Strings.
Azurefrog
2
Sie sollten Code anzeigen, was Sie bisher versucht haben und was nicht funktioniert, damit die Leute Ihnen helfen können.
Bvidal
Ich habe versucht, das zu tun, aber wegen dieser nervigen Sache "Es entspricht nicht unseren Qualitätsstandards", die ich schließlich aufgegeben habe, habe ich 15 Minuten gebraucht, um dies zu posten, weil ich "i" mit "I" korrigieren musste.
Das sollte am 05. Mai 1988 gedruckt werden. Um den Zeitraum nach dem Tag und vor dem Monat zu erhalten, müssen Sie möglicherweise "dd'.LLLL yyyy" verwenden.
Vielen Dank, das hilft, aber es hat nicht mit 'LLLL' funktioniert, um den Namen des Monats anzuzeigen, aber mit 'MMMM' fand ich das seltsam, da selbst in der Dokumentation etwas anderes steht. Aber nochmals vielen Dank, dass Sie mir geholfen haben .
Jasko
2
Jetzt localDate.format (Formatierer); funktioniert überhaupt nicht
Mit Hilfe von ProgrammersBlock-Posts habe ich mir das ausgedacht. Meine Bedürfnisse waren etwas anders. Ich musste eine Zeichenfolge nehmen und als LocalDate-Objekt zurückgeben. Ich erhielt einen Code, der den älteren Kalender und SimpleDateFormat verwendete. Ich wollte es etwas aktueller machen. Das habe ich mir ausgedacht.
import java.time.LocalDate;import java.time.format.DateTimeFormatter;voidExampleFormatDate(){LocalDate formattedDate =null;//Declare LocalDate variable to receive the formatted date.DateTimeFormatter dateTimeFormatter;//Declare date formatterString rawDate ="2000-01-01";//Test string that holds a date to format and parse.
dateTimeFormatter =DateTimeFormatter.ISO_LOCAL_DATE;//formattedDate.parse(String string) wraps the String.format(String string, DateTimeFormatter format) method.//First, the rawDate string is formatted according to DateTimeFormatter. Second, that formatted string is parsed into//the LocalDate formattedDate object.
formattedDate = formattedDate.parse(String.format(rawDate, dateTimeFormatter));}
Hoffentlich hilft dies jemandem. Wenn jemand einen besseren Weg sieht, diese Aufgabe zu erledigen, fügen Sie bitte Ihre Eingabe hinzu.
Ich sehe einen besseren Weg: nur LocalDate.parse(rawDate)! String.formatwird hier in einer völlig falschen Form verwendet und gibt nur die erste Zeichenfolge zurück; das DateTimeFormatterwird überhaupt nicht benutzt; parseist eine staticMethode von LocalDate; formattedDateist kein formatiertes Datum, nicht einmal ein String(wie in Frage angefordert)
user85421
0
Es gibt eine integrierte Möglichkeit, LocalDate für joda lib zu formatieren
@ Edward, wenn nicht, beweisen Sie es bitte und geben Sie eine Lösung an, die Sie für besser halten.
Inoy
1
Sie möchten, dass ich beweise, dass LocalDate.toString (String-Muster) NICHT existiert? Bitte geben Sie einen Verweis auf diese Methode an, falls sie existiert - ich konnte sie in keinem Javadocs finden. Für eine Lösung hat diese Frage bereits das.
Edward
@ Edward, Sieht so aus, als ob es dir schwer fällt, es zu finden. Meine Antwort wurde aktualisiert.
Inoy
Joda Time ist nicht "eingebaut". OP scheint java.time.LocalDate zu verwenden, nicht joda.time
Edward
-11
Eine ziemlich gute Möglichkeit, dies zu tun, ist die Verwendung. SimpleDateFormatIch zeige Ihnen, wie:
SimpleDateFormat sdf =newSimpleDateFormat("d MMMM YYYY");Date d =newDate();
sdf.format(d);
Ich sehe, dass Sie das Datum in einer Variablen haben:
String
s.Antworten:
SimpleDateFormat funktioniert nicht, wenn er mit LocalDate startet, das neu in Java 8 ist. Soweit ich sehen kann, müssen Sie DateTimeFormatter verwenden, http://docs.oracle.com/javase/8/docs/api/java/ time / format / DateTimeFormatter.html .
Das sollte am 05. Mai 1988 gedruckt werden. Um den Zeitraum nach dem Tag und vor dem Monat zu erhalten, müssen Sie möglicherweise "dd'.LLLL yyyy" verwenden.
quelle
Könnte kurz sein als:
quelle
Die obige Antwort zeigt es für heute
quelle
Mit Hilfe von ProgrammersBlock-Posts habe ich mir das ausgedacht. Meine Bedürfnisse waren etwas anders. Ich musste eine Zeichenfolge nehmen und als LocalDate-Objekt zurückgeben. Ich erhielt einen Code, der den älteren Kalender und SimpleDateFormat verwendete. Ich wollte es etwas aktueller machen. Das habe ich mir ausgedacht.
Hoffentlich hilft dies jemandem. Wenn jemand einen besseren Weg sieht, diese Aufgabe zu erledigen, fügen Sie bitte Ihre Eingabe hinzu.
quelle
LocalDate.parse(rawDate)
!String.format
wird hier in einer völlig falschen Form verwendet und gibt nur die erste Zeichenfolge zurück; dasDateTimeFormatter
wird überhaupt nicht benutzt;parse
ist einestatic
Methode vonLocalDate
;formattedDate
ist kein formatiertes Datum, nicht einmal einString
(wie in Frage angefordert)Es gibt eine integrierte Möglichkeit, LocalDate für joda lib zu formatieren
Falls Sie es noch nicht haben - fügen Sie es dem build.gradle hinzu:
Viel Spaß beim Codieren! :) :)
quelle
Eine ziemlich gute Möglichkeit, dies zu tun, ist die Verwendung.
SimpleDateFormat
Ich zeige Ihnen, wie:Ich sehe, dass Sie das Datum in einer Variablen haben:
Prost.
quelle
LocalDate
Instanz in einem bestimmten Format drucken . Wie könnteSimpleDateFormat
ihm hier helfen?