0

Spring/Hibernate Web アプリケーションを開発しています。jspページからの入力がさまざまなサービスで使用されるように保存され、最終的にデータベースに保存されるDataTranseferObjectがあります。

jsp ページのフィールドの 1 つがdeliveryDate. データベースに日付型として保存したい:

delivery.java から

@Column(name = "DELIVERY_DATE") 
private Date deliveryDate; 

public void setDeliveryDate(Date deliveryDate){
    this.deliveryDate= deliveryDate;
}
public Date getDeliveryDate(){
    return deliveryDate;
}  

"yyyy-MM-dd"フォーマットのみが許可されるように、jsp ページのフィールドを検証しようとしています。これを行うには、DataTransferObjectdeliveryDateの型としてを使用し、注釈を使用してそれを検証しています。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

4

1 に答える 1

4

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;
于 2012-05-22T10:45:25.197 に答える