SpringBootでのリクエストの日付処理

エキサイト株式会社 メディア開発の佐々木です。

SpringBootでは、日付処理をある程度アノテーションで処理できるので共有します。

@RestController
@RequestMapping
public class DemoController {

    @GetMapping("/date_format")
    public Form dateFormat(Form form) {
        return form;
    }

    @Data
    static class Form {
        @DateTimeFormat(pattern = "yyyy-MM-dd")   // 入力時の期待フォーマット
        @JsonFormat(pattern = "yyyy/MM/dd")   // 出力時の期待フォーマット
        private LocalDate date;
    }
}

入力時に変換が必要であれば@DateTimeFormatを使用します。pattern = "yyyy-MM-dd" を定義してあげると、 2021-04-23みたいな日付の処理ができます。出力時に変換が必要であれば@JsonFormatを使います。 pattern = "yyyy/MM/dd"を定義してあげると、2021/04/23のように出力ができます。

試しに実行してみます。

$ curl http://localhost:8080/date_format?date=2020-12-12

{"date":"2020/12/12"}

期待どおりになりました。変換処理等も特に必要がないので手軽でいいです。

エキサイトでは、一緒に事業を運営していきたいエンジニアを募集しております。 インターン等も受け入れていますので、ぜひご連絡いただければと思います。

www.wantedly.com