यह अपने आप कर एक नियमित अभिव्यक्ति के साथ:
public class SpecialDateFormat
{
private final static Pattern PATTERN = Pattern.compile("(\\d{2})[\\.\\/\\-](\\d{2})[\\.\\/\\-](\\d{4}) (\\d{2}):(\\d{2})");
public static Date parse(String text) throws ParseException {
Matcher m = PATTERN.matcher(text);
if (m.matches()) {
int dd = Integer.parseInt(m.group(1));
int mm = Integer.parseInt(m.group(2));
int yy = Integer.parseInt(m.group(3));
int hh = Integer.parseInt(m.group(4));
int mi = Integer.parseInt(m.group(5));
// NOTE: Checking if values are in valid ranges omitted
Calendar cal = Calendar.getInstance();
cal.set(yy, mm - 1, dd, hh, mi, 0);
return cal.getTime();
}
else {
throw new ParseException("Unparseable date: " + text, 0);
}
}
}
नोट तथापि कि यह विभिन्न विभाजक मिश्रण, उदाहरण के लिए अनुमति देता है "17-09/200 9 12:00" की अनुमति होगी।
धन्यवाद, मैं अपने कोड बेस के लिए जेनेरिक डेट पार्सर पर काम करना शुरू कर दूंगा और यह एक अच्छी शुरुआत होगी – Tarski