SpringBoot日付変換


SpringBoot日付変換
前提:リクエストパラメータのstringをdateに変換することと@RequestBodyリクエストを使用してjsonのstringをdateに変換することは2つの問題です.
1.入力パラメータ時にstringをDate 2に変換する.値を返すとdateがstringに変換されます
要求パラメータにstringをdateに変換するためにグローバルな変換器を使用すると問題を解決できますが、@RequestBodyのようなコミットには役に立たない``java
@Component
public class StringToDateConverter implements Converter {

    private static final String dateFormat = "MM/dd/YYYY hh:mm:ss a";

    @Override
    public Date convert(String value) {
        SimpleDateFormat formatter = new SimpleDateFormat(dateFormat);
        try {
            return formatter.parse(value);
        } catch (Exception e) {
            throw new RuntimeException(String.format("parser %s to Date fail", value));
        }
    }
}

ローカル変換
@DatetimeFormat  String   Date,           ,     。
@JsonFormat(pattern="yyyy-MM-dd", timezone="GMT+8")   Date   String            ,          

@JsonDeserializeと@JsonSerializeを使用した別の方法のローカル変換
@Component
public class DateJsonDeserializer extends JsonDeserializer {

    public static final SimpleDateFormat format=new SimpleDateFormat("MM/dd/YYYY");


    @Override
    public Date deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
        try {
            return format.parse(jsonParser.getText());
        } catch (ParseException e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        }
    }
}

使用
@JsonDeserialize(using = DateJsonDeserializer.class)
private Date anticipatedStartedDate;

参照先:https://blog.csdn.net/walkcode/article/details/78956559
グローバル変換は入出力に役立ちます.これは最良の方法で、要求パラメータとjsonに対して、入出力が役立ちます.
spring:
    jackson:
        date-format: MM/dd/YYYY HH:mm:ss
        time-zone: GMT+8

hhは12時間制,HHは24時間制である.24時間制を使用する場合はタイムゾーンを追加しなければなりません.そうしないと、現地時間と8時間差があります.MM/dd/yyyyy HH:mm:ssに変更した場合、タイムゾーンを追加しないのも正常です.注意:日付これは完全に一致しています.MM/dd/YYYYが間違っていると伝えられたら、後ろのHH:mm:ss aを付けなければなりません.