2013-01-17 19 views
30

Java/Groovy geliştirme konusunda yeniyim ve reforme etmek istediğim basit bir dizim var, ancak aşağıdakileri çalıştırmayı denediğimde 'Ayrılmaz bir tarih' hatası alıyorum:Java/Groovy - basit tarihin yeniden biçimlendirilmesi

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 

Eminim bu basit bir şeydir, ancak çözüm beni çekiyor. Biri yardım edebilir mi?

+1

Tarihiniz "DD-MMM-YYYY" deseninde verilmiştir ve başka bir şeyi ayrıştırmaya çalışıyorsunuz ... – posdef

+0

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

cevap

51

Groovy ile, içerir gerekmez ve tıpkı yapabilirsiniz:

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

println newDate 

yazdırmak için:

12-4-2012 
+0

Sizler harikasınız. Yardım ettiğin için teşekkür ederim! –

+1

Date.parse() ... bu uygun değil mi? – Rafael

+0

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

1

Sizin DateFormat desen size giriş tarihini String eşleşmiyor. Sen

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

oldDateSimpleDateFormat bunu ayrıştırmak için kullandığınız bir biçimde değil kullanabilirsiniz.

Bu biçimi deneyin: dd-MMM-yyyy - Ayrıştırmaya çalıştığınız şeyle eşleşiyor.

İlgili konular