2017-04-05 11 views
1

DateOfJoining値(文字列型)を "DateInput"クラスのメンバ変数 "dateOfJoining"(日付型)にバインドする方法郵便配達員を通じてJSONより下に送信します。同じ形式のdd/MM/yyyyでjavaの文字列をDateオブジェクトに変換する方法変換された日付はDateオブジェクト内にある必要がありますが、Stringではありません。日付オブジェクトを受け取るjavaにjsonの日付(文字列形式)を送る方法

郵便配達に当たっ

{ 
"dateOfJoining" : "03/04/2017" 
} 

サービスURLの下に与えられたとしてJSONがある - Javaではlocalhost /休憩/ハロー

RestServiceクラス - HandleRestRequest.java

@RestController 
public class HandleRestRequest 
{ 

    @RequestMapping("\hello"); 
    public List setRequestParams(@RequestBody DateInput dateInput) 
{ 
    ....... 
    } 
} 

Pojo Class DateInput.java 

    public class DateInput 
{ 
    private Date dateOfJoining; 
    ....... 
    } 

私が送信した場合下の形式のjsonからの日付、不満足な入力としての投げエラー

{ 
    "dateOfJoining" : 04/04/2017 
} 

だから私はDateInput.javaファイル内の文字列形式として、文字列としてdateOfJoiningを変更することにより、それを送信すると、後で私がString

に日から

以下の変更DateInput.javaファイルとして日付オブジェクトとしてそれを変換しようとした 現在までの文字列からのユーザ入力を変換するために、JSON

{ 
"dateOfJoining" : "04/04/2017" 
} 

コードを変更し

public class DateInput 
{ 
    private String dateOfJoining; 
    ....... 
} 

DateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); 
    String convertedDate = sdf.format(dateInput.getDateOfJoining()); 

必要な形式に変換しますが、戻り値の型はStringですが、DAOレイヤーを送信するDateオブジェクトが必要です。だから私は、だから、DAO層は、フォーマットDDの日付オブジェクトとして入力を期待しているので、必要な形式で日付オブジェクトに文字列を変換する方法を私を助けてくださいsdf.parse、その返すDateオブジェクトではなく、必要な形式で

Date date = sdf.parse(sdf.format(dateInput.getDateOfJoining())); 
output is like - Tue Apr 04 00:00:00 IST 2017 
expected is 04/04/2017 (with return type Date object). 

を試してみました/ MM/yyyy

+0

は、入力された文字列を受け入れ、日付に変換するためにモーメントを使用 – cYrixmorten

答えて

3

編集:更新された質問に従って回答を更新します。

@JsonFormatからJackson Databindまでのアノテーションを使用して日付パターンを指定します。

public class DateInput 
{ 
    @JsonFormat(shape=JsonFormat.Shape.STRING, pattern="dd-MM-yyyy") 
    private Date dateOfJoining; 
    ....... 
    } 
+0

申し訳ありませんが、私は疑問に保つために@RequestBodyを逃しました。今質問を更新しました –

+0

しかし、私のプロジェクトにはJackson Databindがありません。その場合はどうすればいいですか? –

+0

依存関係を追加します。 '@ RestController' を使うためには、あなたはスプリングの依存関係を追加していなければなりません。これを追加するのと同じ方法を使用します。 –

関連する問題