2012-11-14 32 views
5

में प्रारूपित मैं जावा में एक स्ट्रिंग जो एक तारीख है, लेकिन इस तरह से प्रारूपित है:एक स्ट्रिंग एक तिथि है कि ले रहा है और जावा

मैं तरह देखने के लिए उसे पुन: प्रारूपित करने की जरूरत है 02/12/2012 यह कैसे किया जा सकता है।

निम्नलिखित कोड मैं वापस हो रही [email protected]

नीचे मेरी कोड है रखने के साथ

..

public static void main(String[] args) { 

    // Make a String that has a date in it, with MEDIUM date format 
    // and SHORT time format. 
    String dateString = "02152012"; 

    SimpleDateFormat input = new SimpleDateFormat("ddMMyyyy"); 
    SimpleDateFormat output = new SimpleDateFormat("dd/MM/yyyy"); 
    try { 
     output.format(input.parse(dateString)); 
    } catch (Exception e) { 

    } 
    System.out.println(output.toString()); 
} 
+2

कोई महीने संख्या 15 – Alex

+1

है एलेक्स के साथ सहमत हैं, और यहां तक ​​कि यदि 02122012 होना है, तो आपने क्या प्रयास किया है? –

+3

@ ब्लूबलेट: आपने मूल प्रश्न * मान लिया है * यह सिर्फ एक टाइपो है। मैं ओपी से यह सुनना चाहूंगा। –

उत्तर

9

उपयोग SimpleDateFormat।

SimpleDateFormat input = new SimpleDateFormat("ddMMyyyy"); 
SimpleDateFormat output = new SimpleDateFormat("dd/MM/yyyy"); 
System.out.println(output.format(input.parse("02122012"))); // 02/12/2012 

जॉन स्कीट द्वारा सुझाव दिया गया है, तो आप भी TimeZone और LocaleSimpleDateFormat

SimpleDateFormat englishUtcDateFormat(String format) { 
    SimpleDateFormat sdf = new SimpleDateFormat(format, Locale.ENGLISH); 
    sdf.setTimeZone(TimeZone.getTimeZone("UTC")); 
    return sdf; 
} 

SimpleDateFormat input = englishUtcDateFormat("ddMMyyyy"); 
SimpleDateFormat output = englishUtcDateFormat("dd/MM/yyyy"); 
System.out.println(output.format(input.parse("02122012"))); // 02/12/2012 
+0

कूल समाधान +1 – Juvanis

+1

मैं यूटीसी और लोकेल के रूप में समय क्षेत्र निर्दिष्ट करने का सुझाव दूंगा, और संभवतः कैलेंडर को भी स्पष्ट रूप से सेट कर रहा हूं। –

+0

यह काम नहीं किया ... मुझे java.text मिला है। [email protected] अगर मैं output.toString() – techsjs2012

0

पर सेट कर सकते हैं यह आपके संपादित प्रश्न में कोड के साथ समस्या है:

System.out.println(output.toString()); 

आप पर कॉल करने के नतीजे SimpleDateFormat प्रिंट कर रहे हैं। दरअसल, आप कर रहे हैं अनदेखी format बुला का परिणाम:

System.out.println(output.format(input.parse(dateString))); 

या अधिक स्पष्ट रूप से:

output.format(input.parse(dateString)); 

बस के लिए इसे बदल

Date parsedDate = input.parse(dateString); 
String reformattedDate = output.format(parsedDate); 
System.out.println(reformattedDate);