Swaggerテスト入力Dateタイプの問題を解決する

1344 ワード

Swaggerテスト入力Dateタイプの問題を解決する
 Failed to convert from type [java.lang.String] to type [@io.swagger.annotations.ApiModelProperty java.util.Date] for value '2020-05-12 00:00:00'; nested exception is java.lang.IllegalArgumentException
  • swagger-uiはStringタイプの時間を直接入力し、バックグラウンド受信フィールドはDateタイプのjsonformat変換異常問題の解決方法は以下の通りである:
  •     @ApiModelProperty(value = "    ", example = "2020-02-05 13:30:41")
        @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss", iso = DateTimeFormat.ISO.DATE_TIME)
        private Date fromDate;
        @ApiModelProperty(value = "    ", example = "2020-02-05 13:30:41")
        @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss", iso = DateTimeFormat.ISO.DATE_TIME)
        private Date toDate;
    
  • @DateTimeFormat注記を使用して文字列をDateオブジェクトに変換し、注記@DateTimeFormatを追加することでpattern受信時間タイプフォーマットを設定できます.isoプロパティはオプションです.

  • 小tips注意:データベースから取得した時間がフロントエンドに伝わって展示されている場合、満足のいく時間フォーマットの日付が得られない場合があります.データベースに表示されているのは正しい時間フォーマットですが、取得したのは醜いタイムスタンプになります.@JsonFormat注釈はこの問題をよく解決しました.私たちは@JsonFormatを使用することで、バックグラウンドからフロントまでの時間フォーマットが一致しているという問題をよく解決することができます.次に、もう一つの問題は、WEBサービスを使用する場合、バックグラウンドに転送する必要がある可能性があります.例えば、新しいユーザーを登録するには生年月日を記入する必要があります.このとき、フロントがバックグラウンドに転送する時間フォーマットは同じように一致しません.私たちの対応にはもう一つの注釈があり、@DataTimeFormatはこの問題をよく解決しました.