2013-01-17 17 views
30

मैं जावा/ग्रोवी विकास के लिए नया हूं और मेरे पास एक सरल स्ट्रिंग है जिसे मैं दोबारा सुधारना चाहता हूं, हालांकि मुझे निम्नलिखित चलाने का प्रयास करते समय एक 'अतुलनीय तिथि' त्रुटि मिलती है:जावा/ग्रोवी - सरल तिथि सुधार

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 

मुझे यकीन है कि यह कुछ आसान है, लेकिन समाधान मुझे बढ़ाता है। क्या कोई मदद कर सकता है?

+1

आपकी तिथि "डीडी-एमएमएम-वाईवायवाई" पैटर्न में दी गई है, और आप कुछ और पार्स करने की कोशिश कर रहे हैं ... – posdef

+0

डुप्लिकेट http://stackoverflow.com/questions/11135675/unparseable-date-30-jun- 12 – CAMOBAP

उत्तर

51

ग्रूवी के साथ, आप भी शामिल की जरूरत नहीं है, और सिर्फ कर सकते हैं:

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

println newDate 

मुद्रित करने के लिए:

12-4-2012 
+0

आप लोग अद्भुत हैं। आपकी सहायताके लिए धन्यवाद! –

+1

Date.parse() ... क्या यह बहिष्कृत नहीं है? – Rafael

+0

@ राफेल नो http://groovy.codehaus.org/groovy-jdk/java/util/Date.html#parse(java.lang.String,%20java.lang.String) –

1

आपका DateFormat पैटर्न आप इनपुट तारीख String मेल नहीं खाता। आप इस्तेमाल कर सकते हैं

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

oldDateSimpleDateFormat आप इसे पार्स करने के लिए उपयोग कर रहे हैं के स्वरूप में नहीं है।

इस प्रारूप को आजमाएं: dd-MMM-yyyy - यह आपके द्वारा पार्स करने की कोशिश कर रहे हैं।

संबंधित मुद्दे