我正在开发一个 Spring/Hibernate Web 应用程序。我有一个 DataTranseferObject ,其中存储来自 jsp 页面的输入以供不同的服务使用并最终保存到数据库中。
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"
允许格式。为此,我在 DataTransferObject 中有deliveryDate
as类型,并使用注释对其进行验证: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;
由于我想将它作为 Date 类型存储在数据库中,因此我需要将其转换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