ホームページ  >  記事  >  Java  >  SpringBoot がグローバル時間およびローカル時間の書式設定を実装する方法

SpringBoot がグローバル時間およびローカル時間の書式設定を実装する方法

王林
王林転載
2023-05-12 23:16:041326ブラウズ

はじめに

開発中、データベース内の日付型をクエリすると、次のような状況のように、必要な時刻形式になっていないことがよくあります:

これらの日付は関連しています。私のデータベースでは、フィールドはすべて datatime 形式に設定されています:

SpringBoot がグローバル時間およびローカル時間の書式設定を実装する方法

データ型は次のとおりです:

SpringBoot がグローバル時間およびローカル時間の書式設定を実装する方法

エンティティは次のように構成されています:

SpringBoot がグローバル時間およびローカル時間の書式設定を実装する方法

次に、デフォルトのクエリ結果は次のようになります:

SpringBoot がグローバル時間およびローカル時間の書式設定を実装する方法

ヘルプ、どのようなものですか形式はこれです、私ではありません 希望の年、月、日、時、分、秒。

実際、この問題を解決するのは非常に簡単です。時刻の形式が間違っているだけです。グローバル設定とローカル設定を通じてこの問題を解決しましょう。

問題を解決する

1 グローバル設定 (推奨)

一般的に、利便性と統一性を高めるために、グローバルな処理日付の形式を設定し、それを構成ファイルで構成できます

アプリケーション構成ファイルについて考えてみましょう。 yaml には 2 つの形式があり、それぞれの形式に必要なコードを用意しました。

プロパティ形式

# 设置全局的日期格式为年月日时分秒
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
# 世界标准时间,为了方式时差,需要+8小时
spring.jackson.time-zone=GMT+8

SpringBoot がグローバル時間およびローカル時間の書式設定を実装する方法

yaml形式

もちろん、yaml形式を使用している場合、上記はプロパティ形式です。次に、次の構成を使用できます:

spring 
  jackson: 
    date-format: yyyy-MM-dd HH:mm:ss #设置全局的日期格式为年月日时分秒
    time-zone: GMT+8 #世界标准时间,为了方式时差,需要+8小时

この構成項目を追加した後、サービスを再起動して、インターフェイスに再びアクセスできます:

これが必要な時刻形式であることがわかります。データベースより 8 時間長いです

これはタイムゾーンを追加したことが原因です タイムゾーン設定項目を追加すると、元の時刻より 8 時間長くなります。 , このタイム ゾーン構成項目は個人のニーズに応じて構成できます。構成する必要はありません

SpringBoot がグローバル時間およびローカル時間の書式設定を実装する方法

#2 ローカル設定 (推奨されません)

グローバル設定は非常に人気がありますが、場合によってはグローバルに統一フォーマットを強制することはできず、個別の時間処理のみを実行します

現時点では、ローカル設定の役割が反映されています。 、グローバル設定をコメントアウトします:

SpringBoot がグローバル時間およびローカル時間の書式設定を実装する方法

pom の紹介

ローカル設定では fastjson 依存関係を使用する必要があるため、依存関係をダウンロードする必要があります

 <!--fastjson-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.58</version>
        </dependency>

注釈の追加

時間の書式設定が必要なフィールドに注釈を追加します:

 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")

これには 2 つのパラメータがあります:

1: パターン: 時間の書式

2 : timezone: タイムゾーン

原則は、グローバル設定の 2 つのパラメーターと同じです

ここでは、比較のために注釈付きの時間属性と注釈のない時間属性を 1 つずつ取り出すと推定します。

SpringBoot がグローバル時間およびローカル時間の書式設定を実装する方法プロジェクトを再起動し、インターフェイスをテストし、2 つの日付形式を比較します。

SpringBoot がグローバル時間およびローカル時間の書式設定を実装する方法もちろん、グローバル構成と同様に、注釈内のパラメータは、独自のニーズに応じて柔軟に選択することもできます。

たとえば、ここではタイムゾーンは必要ありません。年、月、日の形式が必要な場合は、それを変更するだけです。直接:

SpringBoot がグローバル時間およびローカル時間の書式設定を実装する方法#結果はもちろん、設定方法によって決まります:

以上がSpringBoot がグローバル時間およびローカル時間の書式設定を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。