0

我正在开发一个 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 中有deliveryDateas类型,并使用注释对其进行验证: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 类型存储在数据库中,因此我需要将其转换StringDate类型。我正在尝试使用服务来做到这一点:

@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);

如何正确地将 转换StringDate类型并返回Date类型?

谢谢您的帮助!/D

4

1 回答 1

4

只需处理ParseException调用解析StringDate

DateFormat formatter =  null;
java.util.Date date = null;
formatter = new SimpleDateFormat("yyyy-MM-dd");
try{
  date = formatter.parse(stringDate);
  //if you want you can convert it to `java.sql.Date`
}catch(ParseException ex){//do whatever you would like to}

return date;
于 2012-05-22T10:45:25.197 回答