#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"
и т.д.)