2017-02-13 13 views
0

私はリモートレストサービスを呼び出す際に日付を渡す際に問題に直面しています。日付は2016-11-05T12:01:01.000Zの形式で受け付けます。 Date型の時間フィールドにこれを設定する必要があります。サーバーが上記のformat.Serverで日付を取得できるように日付オブジェクトを渡すには、サーバーは他の形式で日付を拒否します。Reg Dateは特定のフォーマットのリクエストボディに渡す必要があります

私はアプローチの下に使用されるが、それはStringに

SimpleDateFormat sdformat = new SimpleDateFormat(
                "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.US); 
sdformat.setTimeZone(TimeZone.getTimeZone("UTC")); 
try {     
    transferRequest.setTime(sdformat.parse(sdformat.format(new Date()))); 
} catch (ParseException e) { 
    e.printStackTrace(); 
} 

よろしくtransferRequestで のGaurav Kaushikによる

+0

あなたにはどんな例外がありますか? – Avinash

+0

400リクエストが間違っています。 –

+0

400は検証に失敗したため、このフィールドで問題がどのように発生していますか? – Avinash

答えて

1

変更時刻フィールドを支援し、コード

SimpleDateFormat sdformat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.US); 
sdformat.setTimeZone(TimeZone.getTimeZone("UTC")); 

transferRequest.setTime(sdformat.format(new Date())); 

あるいは、もし下にしようとしませんでしたJacksonを使用してデータをシリアライズしてから、TransferRequestクラスで次のコードを使用してパターンを設定します。その後、

@JsonFormat (shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'") 
private Date time; 

そして、ちょうどあなたが時間を設定しているコードで新しい日付を設定し、ジャクソンは自動的に使用し、与えられたフォーマットで春ベースのグローバルなメッセージコンバータ用

transferRequest.setTime(new Date()); 

を日付を解析しますあなたの設定クラスの次のコード。

@Bean 
public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() { 
    ObjectMapper mapper = new ObjectMapper(); 
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); 
    myObjectMapper.setDateFormat(df); 

    MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(mapper); 
    return converter; 
} 
+0

応答ありがとうございますが、これは私do.sdformat.format(新しいDate())文字列を返します。私は日付オブジェクトを返すために解析を使用します。 時刻フィールドに日付オブジェクト、 –

+0

が設定されている必要があります。Avinash.Can私がコードでこれを行う方法を教えてください。私は変更できない第三者poja jarを使用しています。 –

+0

pojoを編集できない場合、オプションは非常に限られています。 jacksonでspringを使用している場合、グローバルメッセージコンバータを使用できますが、これはすべての日付フィールドに影響します。更新された答えを見る – Avinash

関連する問題