@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 つの注釈を同時に使用できます。