2013-03-12 7 views
5

Próbuję przekonwertować z ciągiem do LOCALDATE (Joda Time), ale jego dając mi błądString na lokalną datę błędu

String theDate = w.getPSDate(); == 6/03/2013 
LocalDate ld = new LocalDate(theDate); 
System.out.println(ld); 

z jakiegoś powodu muszę używać ciąg zamiast nieaktualne. Chcę wydrukować datę jako (06/03/2013). jaki jest błąd w kodzie?

błąd

Exception in thread "main" java.lang.IllegalArgumentException: Invalid format: "06/03/2013" is malformed at "/03/2013" 
at org.joda.time.format.DateTimeFormatter.parseMillis(DateTimeFormatter.java:747) 
at org.joda.time.convert.StringConverter.getPartialValues(StringConverter.java:87) 
at org.joda.time.LocalDate.<init>(LocalDate.java:406) 
at org.joda.time.LocalDate.<init>(LocalDate.java:354) 
at Date.GetDate.main(GetDate.java:94) 

Java Wynik: 1

Odpowiedz

7

Użyj DateTimeFormatter zamiast:

// Are you sure it's 6/03/2013 rather than 06/03/2013? dd would be nicer... 
DateTimeFormatter formatter = DateTimeFormat.forPattern("d/MM/yyyy"); 
LocalDate date = formatter.parseLocalDate(text); 
+0

czy drukować datę wychodzi jako 2013-03-06, zamiast 06/03/2013. to jest 06.03.2013. – vijay

+0

@vijay: Twoje pytanie dotyczące konwersji * z * 'String' * na *' LocalDate'. Aby przekonwertować w innym kierunku, możesz użyć tego samego formatera za pomocą metody 'print'. –