В моем коде мне нужно преобразовать значение String (Input) в java.sql.Date format
. Проблема, с которой я столкнулся, - формат даты ввода не определен, и он может быть в любом формате. Например, строка ввода может быть "Jan 10,2014"
или "01-10-2014"
или "2014/Jan/10"
. Поэтому теперь мне нужно преобразовать это входное значение в java.sql.Date(DD/MMMM/YYYY)
. Есть ли способ сделать это преобразование?
Это невозможно.
Вы не можете различать dd/MM/yyyy
и MM/dd/yyyy
.
Вам действительно нужно знать формат, иначе ваша программа, вероятно, не будет вести себя так, как вы хотите.
Попробуйте использовать List
всех шаблонов, упомянутых выше, используя SimpledateFormat.
Что-то вроде этого:
SimpleDateFormat format1 = new SimpleDateFormat("MMM dd,yyyy");
SimpleDateFormat format2 = new SimpleDateFormat("MM-dd-yyyy");
SimpleDateFormat format3 = new SimpleDateFormat("yyyy/MMM/dd");
// Note: be sure about the format, or else you may end up assigning incorrect values
List<DateFormat> list = new ArrayList<DateFormat>();
list.add(format1);
list.add(format2);
list.add(format3);
for (DateFormat format : list) {
try {
System.out.println(format.parse("Jan 10,2014"));
// Match found. Take action
} catch (ParseException exception) {
// Ignore. Try other pattern
}
}