LocalDateTime - ピット

新しいでDate API、我々は文字列変換解決するためにどのように伝えるために、ここで、木のピットの多くに遭遇したときLocalDateTimeの方法を

9028759-fb1af6772e01d915.jpg
ジャワ

使用

従来の

String valueIn = "2018-01-24 10:13:52";
DateTimeFormatter DATETIME = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime ldt = LocalDateTime.parse(valueIn, DATETIME);
System.out.println(ldt);

出力

2018-01-24T10:13:52

しかし、私はこの魚のような結果が欲しいです

2018-01-24T10:13:52

譲渡日は
、我々は書くことができます

DateTimeFormatter DATETIME = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss");

ミリ秒単位で番号をバック場合は?私たちは書くことができます

DateTimeFormatter DATETIME = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS");

SpringBoot統一治療

次の構成は、走査範囲のコンテキストにあるSpringBoot

@ControllerAdvice
public class VControllerAdvice extends ValidateControllerAdvice{
  private static final DateTimeFormatter LOCAL_DATE_TIME = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
  private static final DateTimeFormatter LOCAL_DATE = DateTimeFormatter.ofPattern("yyyy-MM-dd");

    @InitBinder
    public void initBinder(WebDataBinder binder) {
        binder.registerCustomEditor(LocalDate.class, new PropertyEditorSupport() {
            @Override
            public void setAsText(String text) throws IllegalArgumentException {
                this.setValue(LocalDate.parse(text, LOCAL_DATE));
            }
        });
        binder.registerCustomEditor(LocalDateTime.class, new PropertyEditorSupport() {
            @Override
            public void setAsText(String text) throws IllegalArgumentException {
                this.setValue(LocalDateTime.parse(text, LOCAL_DATE_TIME));
            }
        });
    }
}

PS:パーフェクト


9028759-07315bb8dadcd082.png

おすすめ

転載: blog.csdn.net/weixin_34072857/article/details/90840102