我正在开发Spring/Hibernate Web应用程序。我有一个DataTranseferObject,其中来自jsp页面的输入被存储以供不同的服务使用并最终保存到数据库中。Cast String date
jsp页面中的一个字段是deliveryDate
。我想将它存储在数据库中的日期类型:
从delivery.java
@Column(name = "DELIVERY_DATE")
private Date deliveryDate;
public void setDeliveryDate(Date deliveryDate){
this.deliveryDate= deliveryDate;
}
public Date getDeliveryDate(){
return deliveryDate;
}
我试图验证字段在JSP页面,以便只有"yyyy-MM-dd"
格式是允许的。要做到这一点我有deliveryDate
作为DataTransferObject一个String
类型,我与@Pattern
注解验证它是这样:
@Pattern(regexp="((19|20)\\d\\d)-(0?[1-9]|1[012])-(0?[1-9]|[12][0-9]|3[01])", message="please enter date in fromat yyyy-MM-dd")
@NotNull(message="delivery date is a required field")
private String deliveryDate;
因为我想将它存储在数据库中的日期类型,我需要将String
转换为Date
类型。这我试图做使用服务:
@Transactional
public Date stringToDateConversion(String stringDate){
DateFormat formatter;
Date date;
formatter = new SimpleDateFormat("yyyy-MM-dd");
date = (Date) formatter.parse(stringDate);
return date;
}
但因为formatter.parse(stringDate)
不工作给予"Unhandled exception type ParseException"
我需要的服务返回一个Date类型,所以我可以在控制器中使用它:
Date deliveryDate= deliveryService.stringToDateConversion(deliveryDto.getDeliveryDate());
delivery.setDeliveryDate(deliveryDate);
如何正确将String
转换为Date
类型并返回Date
类型?
感谢您的帮助! /d
看起来你是在谈论一个编译时异常......我会与@Jigar乔希答案去。 –