2016-04-22 6 views
-3

Ich versuche, eine gewünschte joda Zeit LocalDate Typ zu einem mmddyyy Format zu formatieren, und ich bin in Schwierigkeiten geraten und nicht sicher, wie es weiter geht. Ich habe bisher ein paar verschiedene Dinge ausprobiert und hatte kein Glück.Formatieren von Joda Time LocalDate zu MMddyyyy

Also ich möchte gerne ein Datum wie 04-15-2016 nehmen und einen LocalDate-Typ von ihm im Format 04152016 erhalten, aber es muss immer noch im LocalDate-Format sein, keine Zeichenfolge.

DateTimeFormatter dtf = DateTimeFormat.forPattern("MMddyyyy"); 
LocalDate currentDate = LocalDate.parse("04152016", dtf); 
System.out.println(currentDate); 

Das Datum kommt als 2016.04.15 aus. Wenn mir jemand helfen könnte, würde ich das sehr schätzen. Vielleicht fehlt mir etwas Grundlegendes, wenn es um die Joda Time-Bibliothek geht.

Danke, Sie.

+3

Ich verstehe nicht. Warum verwenden Sie Ihren 'DateTimeFormatter' nicht, um das' currentDate' zu ​​formatieren? – Savior

+5

Sie müssen verstehen, dass ein 'LocalDate' kein Format hat - das ist nicht Teil seines Status. Wenn Sie es in eine bestimmte Form in Text konvertieren möchten, verwenden Sie einen 'DateTimeFormatter'. –

Antwort

0

Datentypen wie long, double, Date und LocalDate sind Werte, und nicht speichern Sie Ihr bevorzugtes Format für, wie Sie wollen, dass sie angezeigt werden soll.

Wenn man sie angezeigt werden eine bestimmte Art und Weise wollen, müssen Sie einen Formatierer verwenden, um sie in einen String zu drehen, dann muss der String ein Format, aber der Wert tut nie (außer es standardmäßig das Format eingebaut)

+0

Wenn Sie auch zeigen, wie es geht, erhalten Sie meine +1. – Andreas

+0

@Andreas zeigen welche insbesondere? –

+0

Zeigen Sie, wie das LocalDate im gewünschten Format gedruckt wird, z. 'System.out.println (dtf.print (currentDate));' – Andreas

1

Ihr currentDate repräsentiert einen Zeitpunkt. Sie können diesen Moment auf eine Weise ausdrucken, die die Franzosen verstehen würden, oder zum Beispiel in Indien.

Bitte werfen Sie zunächst einen Blick auf die Joda documentation. Insbesondere finden Sie den Eintrag

String b = dt.toString("dd:MM:yy"); 

Sie es durch Drucken

currentTime.toString("MMddyyyy"); 

anpassen konnte Oder könnten Sie Ihre Formatter wiederzuverwenden und verabschieden Jon Skeet's answer (in den Kommentaren zitiert).

System.out.println(dtf.print(currentDate));