2017-12-20 18 views
0

私はこのような方法で@RestControllerを持っている:Spring @RequestParamのJavascriptの日付をLocalDateに変換するには?

2017年12月20日16:

@GetMapping("/getInvoices") 
public List<InvoiceDto> getInvoices(@RequestParam(name="date") @DateTimeFormat LocalDate date) { 
// do stuff and return a list of InvoiceDtos 
} 

しかし、JavaScriptクライアントは、次のようなhttp://localhost:8080/getInvoices?date=Thu+Nov+30+2017+00%3A00%3A00+GMT-0600+(Central+Standard+Time)

サーバーのレポートをリクエストを送信するとき:20:03.123 WARN 10324 --- [nio-9003-exec-7] .wsmsDefaultHandlerExceptionResolver:要求のバインドに失敗しました 要素: org.springframework.web.method.annot ation.MethodArgumentTypeMismatchException: 'java.lang.String'型の値を必要な型に変換できませんでした 'java.time.LocalDate';ネストされた例外は org.springframework.core.convert.ConversionFailedExceptionです:タイプ[java.lang.Stringで] を入力するから の変換に失敗しました[@ org.springframework.web.bind.annotation.RequestParam @ org.springframework.format .annotation.DateTimeFormat 値の 'Thu Nov 30 2017 23:20:02 GMT-0600 (中央標準時)'の場合はjava.time.LocalDate ';試みは値 のために失敗した解析[木2017年11月30日午後11時20分02秒GMT-0600(中央標準時)]

どのように私は、この文字列表現に変換することができます:ネストされた例外は java.lang.IllegalArgumentExceptionがあります日付(時間コンポーネントを無視する)をLocalDateに送信しますか?

答えて

0

pattern属性を使用してみてください:

@DateTimeFormat(pattern="E MMM dd yyyy HH:mm:ss 'GMT'Z") 
関連する問題