2012-05-31 10 views
5

In einer Java-Klasse bekomme ich das Datum als String "renewDate" aus dem Datepicker-Eingabeformular in mm/tt/jjjj.Datumsformatierung mit Joda-Zeitbibliothek

Wenn ich versuche, den Code zu aktualisieren, indem joda Zeitbibliothek

DateTime expireDate = new DateTime(renewDate); 
// i get error at above line 
updateOrganization.setRenewdate(expireDate.toDate()); 
organizationDAO.update(updateOrganization); 

, aber wenn ich das Datum in dh Form zu formatieren, aus mm/tt/bis yyyy-mm-dd und senden Sie es an Die Java-Klasse funktioniert gut.

Wie kann ich das Datum von MM/TT/JJ bis JJJJ-MM-TT bei Java-Klasse formatieren. Eingabe ist Stringformat.

+0

Welche Art von Datumsauswahl? AWT, SWT, JSF, JS ...? – Thor

+0

Versuchen Sie, durch datepickers API nach Stichwörtern wie "Muster" zu suchen. – JMelnik

Antwort

15

Die Liste der gültigen Formate für den Konstruktor Sie verwenden sind in der javadoc of ISODateTimeFormat, die nicht „mm/tt /“ enthält:

datetime = time | Datum-opt-time
time = 'T' Zeitelement [offset]
Datum-opt-time = date-Element [ 'T' [time-Element] [offset]]
Datum-element = STD- Datumselement | Datum-Datum-Element | Woche-date-Element
std-date-Element = yyyy [ '-' MM [ '-' dd]]
ord-date-Element = yyyy [ '-' DDD]
Woche-date-Element = xxxx '-W' ww ['-' e]
Zeitelement = HH [Minutenelement] | [fraction]
minute-element = ':' mm [zweites Element] | [bruch]
zweites-element = ':' ss [fraktion]
fraktion = ('.' | ',') digit +
offset = 'Z' | (('+' | '-') HH [ '' ':' mm [ '' ss [(| '') SSS]]])

Sie können ein anderes Format mit einem analysieren DateTimeFormatter (Anmerkung MM in Großbuchstaben für Monat):

DateTimeFormatter fmt = DateTimeFormat.forPattern("MM/dd/yyyy"); 
DateTime expireDate = fmt.parseDateTime(renewDate); 
2

Sie benötigen parse das Datum mit Hilfe der statischen Methode zu analysieren, wie der Konstruktor der String im Format ISO übernimmt

das Datumsformat Sie brauchen wie unten

DateTimeFormatter fmt = DateTimeFormat.forPattern("MM/dd/yyyy"); 
DateTime expireDate = DateTime.parse(renewDate, fmt); 
Verwandte Themen