2013-01-17 11 views
30

Jestem początkującym programistą Java/Groovy i mam prosty ciąg znaków, który chciałbym sformatować, jednak pojawia się błąd "Nie można odczytać daty", gdy próbuję uruchomić następujące polecenie:Java/Groovy - proste formatowanie daty

import java.text.SimpleDateFormat 
import java.util.Date 

String oldDate 
Date date 
String newDate 

oldDate = '04-DEC-2012' 
date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S").parse(oldDate) 
newDate = new SimpleDateFormat("M-d-yyyy").format(date) 

println newDate 

Jestem pewien, że to jest coś prostego, ale rozwiązanie mnie umyka. Czy ktoś może pomóc?

+1

Twoja data podana jest wzorem "DD-MMM-RRRR" i próbujesz parsować coś innego ... – posdef

+0

duplikat http://stackoverflow.com/questions/11135675/unparseable-date-30-jun- 12 – CAMOBAP

Odpowiedz

51

Z Groovy, nie trzeba includes, a może po prostu zrobić:

String oldDate = '04-DEC-2012' 
Date date = Date.parse('dd-MMM-yyyy', oldDate) 
String newDate = date.format('M-d-yyyy') 

println newDate 

Aby wydrukować:

12-4-2012 
+0

Jesteście niesamowici. Dzięki za pomoc! –

+1

Date.parse() ... nie jest to przestarzałe? – Rafael

+0

@Rafael no http://groovy.codehaus.org/groovy-jdk/java/util/Date.html#parse(java.lang.String,%20java.lang.String) –

1

Twój DateFormat wzorzec nie pasuje datę wejścia String ty. Można użyć

new SimpleDateFormat("dd-MMM-yyyy") 
1

oldDate nie jest w formacie SimpleDateFormat używasz go do analizowania.

Wypróbuj ten format: dd-MMM-yyyy - Pasuje do tego, co próbujesz analizować.