Преобразование даты (строка в java.sql.Date) в Java

1

В моем коде мне нужно преобразовать значение String (Input) в java.sql.Date format. Проблема, с которой я столкнулся, - формат даты ввода не определен, и он может быть в любом формате. Например, строка ввода может быть "Jan 10,2014" или "01-10-2014" или "2014/Jan/10". Поэтому теперь мне нужно преобразовать это входное значение в java.sql.Date(DD/MMMM/YYYY). Есть ли способ сделать это преобразование?

Теги:
sqldatetime

2 ответа

4

Это невозможно.

Вы не можете различать dd/MM/yyyy и MM/dd/yyyy.

Вам действительно нужно знать формат, иначе ваша программа, вероятно, не будет вести себя так, как вы хотите.

0

Попробуйте использовать 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
        }
    }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню