2012-05-22 102 views
0

我正在开发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

+0

看起来你是在谈论一个编译时异常......我会与@Jigar乔希答案去。 –

回答

4

只是解析String的呼叫处理ParseExceptionDate

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; 
+0

谢谢修复! – dlinx90

+0

欢迎您:) –