@JsonFormat および @DateTimeFormat アノテーションの概要

@JsonFormat バックグラウンドからフォアグラウンドへの時刻形式の変換
@JsonFormat アノテーションは Spring に付属するアノテーションではないため、このアノテーションを使用する前に jackson 関連の依存関係パッケージを追加する必要があります。もちろん、SpringBoot プロジェクトの場合は、jackson 関連の依存関係が spring-boot-start-web にすでに含まれているため、依存関係を自分で手動で追加する必要はありません。
ここに画像の説明を挿入

ここに画像の説明を挿入

@DataFormat 前から後ろ、そして背景への時刻形式の変換** (入力パラメータの書式設定)
@DateTimeFormat アノテーションのパターン属性値で指定された日付と時刻の形式は、受信パラメータに対応する必要があります。
@DateTimeFormat(pattern="yyyy/ MM/dd HH:mm:ss") の場合
、受信パラメータは次のようになります:
2018/08/02 22:05:55
それ以外の場合は、例外がスローされます。

注釈の使用:
ステートメント: @JsonFormat の使用に関しては、必ず正しく完全なパッケージをインポートしてください。

1. @JsonFormatに注釈を付ける

1. Maven を使用して、@JsonFormat に必要な jar パッケージを導入します

		<!--JsonFormat-->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.8.8</version>
        </dependency>
  
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.8.8</version>
        </dependency>
  
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
            <version>1.9.13</version>
        </dependency>

2. @JsonFormat import java.util.Date を、クエリが必要な時間のデータベース フィールドに対応するエンティティ クラスの属性に追加します

import com.fasterxml.jackson.annotation.JsonFormat;
  
public class TestClass {
    
    
  
    //设置时区为上海时区,时间格式自己据需求定。
    @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
    private Date testTime;
  
     
    public Date gettestTime() {
    
    
        return testTime;
    }
  
    public void settestTime(Date testTimee) {
    
    
        this.testTime= testTime;
    }
}

説明は次のとおりです: @JsonFormat(pattern="yyyy-MM-dd", timezone="GMT+8")
pattern: 変換する必要がある時刻と日付の形式です
timezone: 東 8 区に設定された時刻です
、時間の変換を避けるため、時間をシリアル化するときに国際標準時間の GMT に従って時間をフォーマットするジャクソンにエラーがありますが、中国のデフォルトのタイムゾーンは CST タイムゾーンを使用しており、両者の差は 8 時間です
ヒント: @JsonFormat アノテーションは、プロパティの上に配置することも、プロパティに対応する get メソッド上にも配置できます。2 つのメソッドに違いはありません。

3. 上記の 2 つの手順を完了した後、対応するエンティティ クラスを使用してデータベース クエリから結果を受け取ると、時刻形式の変換が完了し、フロントエンドに返されるときに時刻形式になります。それは私たちの設定に準拠しています。

2. @DateTimeFormatに注釈を付ける

1. @DateTimeFormat の使用方法は @jsonFormat の使用方法に似ています。最初に紹介するのは spring と jodatime です。

<!-- joda-time -->
<dependency>
    <groupId>joda-time</groupId>
    <artifactId>joda-time</artifactId>
    <version>2.3</version>
</dependency>

2. コントローラー層で、Spring MVC フォームを使用してマッピング オブジェクトを自動的にカプセル化するときに、フォアグラウンド データを受け取るオブジェクトの対応する属性に @DateTimeFormat を追加します。

@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
private Date symstarttime;
 
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
private Date symendtime;

注: データをフォアグラウンドにフェッチし、フォアグラウンド データをバックグラウンドに送信する必要があり、時間形式の変換が必要なため、2 つの注釈を同時に使用できます。

おすすめ

転載: blog.csdn.net/weixin_45334970/article/details/123728571