не удается преобразовать тип данных

#java #types

#java #типы

Вопрос:

в моем customerInfoForm у меня есть поле String DateOfBirth .

в моем Customer классе DateOfBirth имеет тип DateTime .

в DataBase также есть тип столбца DateTime .

При вызове customer.setDateOfBirth(customerInfoForm.getDateOfBirth); отображается ошибка.как это преобразовать?

Пожалуйста, подскажите, что делать?

Комментарии:

1. 1. Если у вас когда-нибудь возникнет ошибка, пожалуйста, опубликуйте текст об этом здесь. 2. Пожалуйста, примите некоторые ответы, нажав на галочку слева от ответа.

2. DateTime не является встроенным классом в Java SE. Откуда берется этот тип?

Ответ №1:

Вам нужен DateFormat объект для преобразования строковой версии в дату.

 DateFormat format = new SimpleDateFormat("yyyyMMdd");
customer.setDateOfBirth(format.parse(customerInfoForm.getDateOfBirth()));
  

Обратите внимание, вы говорите о том, DateTime который не является основным объектом Java для dates. Если вы используете другую библиотеку (например, joda-time), вам нужно будет использовать другой форматировщик.

Ответ №2:

Есть перегруженный метод для setDateOfBirth в клиенте, который принимает строку и устанавливает в качестве DateOfBirth значение DateTime.

Ответ №3:

 public Date getDate(String dateString, String format) {
                        Date toReturn=null;     
                        try {
            SimpleDateFormat dFormat = new SimpleDateFormat(format);
            toReturn= dFormat.parse(dateString);
            return toReturn;
        } catch (Exception e) {         
            return null;
        }
    }
  

Используйте эту функцию для преобразования вашей даты в строковом формате в объект Date. убедитесь, что вы передаете правильный формат.
Например. форматов ( "MM/dd/yy HH:mm a" и т.д.)