आप आदि को SimpleDateFormat में अक्षर के रूप में सेट कर सकते हैं। आप चार आवश्यक प्रारूप को परिभाषित कर सकते हैं और उन्हें आज़मा सकते हैं। th
से पहले शुरू करना, क्योंकि मुझे लगता है कि यह अधिक बार होता है। यदि यह ParseException
के साथ विफल रहता है, तो अगला प्रयास करें। अगर सब असफल हो जाते हैं, तो ParseException फेंक दें। यहां कोड सिर्फ एक अवधारणा है। वास्तविक जीवन में आप प्रारूपों को हर समय नए उत्पन्न नहीं कर सकते हैं और थ्रेड-सुरक्षा के बारे में सोच सकते हैं।
public static Date hoolaHoop(final String dateText) throws ParseException
{
ParseException pe=null;
String[] sss={"th","nd","rd","st"};
for (String special:sss)
{
SimpleDateFormat sdf=new SimpleDateFormat("MMMM d'"+special+",' yyyy");
try{
return sdf.parse(dateText);
}
catch (ParseException e)
{
// remember for throwing later
pe=e;
}
}
throw pe;
}
public static void main (String[] args) throws java.lang.Exception
{
String[] dateText={"January 10th, 2010","January 1st, 2010","January 2nd, 2010",""};
for (String dt:dateText) {System.out.println(hoolaHoop(dt))};
}
आउटपुट:
सूर्य जनवरी 10 00:00:00 GMT 2010
शुक्र जनवरी 01 00:00:00 GMT 2010
शनि जनवरी 02 00:00: 00 जीएमटी 2010
थ्रेड "मुख्य" java.text.ParseException में अपवाद: अवांछित दिनांक: ""
"th","nd","rd","st"
निश्चित रूप से केवल अंग्रेजी भाषा के साथ लोकेल के लिए उपयुक्त है। यह याद रखना। फ्रांस में, "re","nd"
आदि मुझे लगता है।
स्रोत
2011-01-18 10:04:00
समस्या "वें" (और संभवतः "rd" और "nd") है, है ना? – Thilo
हर कोई Thanx ... यह पात्रों से बचकर काम कर रहा है। – srinivasarao