Java 迄今为止的演员阵容

Java 迄今为止的演员阵容,java,spring,hibernate,validation,type-conversion,Java,Spring,Hibernate,Validation,Type Conversion,我正在开发一个Spring/Hibernate web应用程序。我有一个DataTransferObject,其中jsp页面的输入被存储以供不同的服务使用,并最终保存到数据库中 jsp页面中的一个字段是deliveryDate。我想将其作为日期类型存储在数据库中: 来自delivery.java @Column(name = "DELIVERY_DATE") private Date deliveryDate; public void setDeliveryDate(Date delive

我正在开发一个Spring/Hibernate web应用程序。我有一个DataTransferObject,其中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
作为
字符串
类型,并使用
@模式
注释验证它:

@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;
因为我想将其作为日期类型存储在数据库中,所以我需要将
字符串
转换为
日期
类型。我正在尝试使用服务执行以下操作:

@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)
给出了
“未处理的异常类型ParseException”

我需要服务返回日期类型,以便我可以在控制器中使用它:

    Date deliveryDate= deliveryService.stringToDateConversion(deliveryDto.getDeliveryDate());
    delivery.setDeliveryDate(deliveryDate);
如何正确地将
字符串
转换为
日期
类型并返回
日期
类型

谢谢你的帮助!
/D

只需处理
ParseException
,调用解析
String
Date

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;

只需通过调用解析
String
Date

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;

看起来您正在谈论编译时异常。。。我同意@Jigar Joshi的答案。看起来你说的是编译时异常。。。我会同意Jigar Joshi的回答。