2014-11-20 15 views
6

C'è un modo per convertire Joda DateTime in String e quindi da quella String in DateTime.come convertire joda datetime in String e viceversa

DateTime d = ..; 
String date = d.toString(); 
DateTime dateTime = DateTime.parse(date); 

La mia domanda è che se l'approccio di cui sopra è valido o necessità di utilizzare formattatore.

risposta

11

Prova questa

DateTime dt = new DateTime(); 
DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss"); 
String dtStr = fmt.print(dt); 
+1

Trap: Questo codice omette il fuso orario dal formato, in modo che il valore che si ottiene di nuovo non è necessariamente il valore di partenza. – Trejkaz

0
LocalDate localDate = new LocalDate(2010, 9, 14); 
DateTimeFormatter formatter = DateTimeFormat.forPattern("MM/dd/yyyy"); 
String formattedDate = formatter.print(localDate); 
0

Per coloro che vogliono analizzare nuovamente il valore da toString può leggere la mia risposta.

Se si legge attentamente l'implementazione di DateTime. Il metodo toString ha la precedenza su AbstractInstant.

@ToString 
public String toString() { 
    return ISODateTimeFormat.dateTime().print(this); 
} 

Ora, analizzare il valore da toString:

DateTime dt = new DateTime(); 
String dtStr = dt.toString(); 
DateTimeFormatter fmt = ISODateTimeFormat.dateTime(); 
DateTime newDt = fmt.parse(dtStr); 
Problemi correlati