開発中、データベース内の日付型をクエリすると、次のような状況のように、必要な時刻形式になっていないことがよくあります:
これらの日付は関連しています。私のデータベースでは、フィールドはすべて datatime 形式に設定されています:
データ型は次のとおりです:
エンティティは次のように構成されています:
次に、デフォルトのクエリ結果は次のようになります:
ヘルプ、どのようなものですか形式はこれです、私ではありません 希望の年、月、日、時、分、秒。
実際、この問題を解決するのは非常に簡単です。時刻の形式が間違っているだけです。グローバル設定とローカル設定を通じてこの問題を解決しましょう。
一般的に、利便性と統一性を高めるために、グローバルな処理日付の形式を設定し、それを構成ファイルで構成できます
アプリケーション構成ファイルについて考えてみましょう。 yaml には 2 つの形式があり、それぞれの形式に必要なコードを用意しました。
プロパティ形式
# 设置全局的日期格式为年月日时分秒 spring.jackson.date-format=yyyy-MM-dd HH:mm:ss # 世界标准时间,为了方式时差,需要+8小时 spring.jackson.time-zone=GMT+8
yaml形式
もちろん、yaml形式を使用している場合、上記はプロパティ形式です。次に、次の構成を使用できます:
spring jackson: date-format: yyyy-MM-dd HH:mm:ss #设置全局的日期格式为年月日时分秒 time-zone: GMT+8 #世界标准时间,为了方式时差,需要+8小时
この構成項目を追加した後、サービスを再起動して、インターフェイスに再びアクセスできます:
これが必要な時刻形式であることがわかります。データベースより 8 時間長いです
これはタイムゾーンを追加したことが原因です タイムゾーン設定項目を追加すると、元の時刻より 8 時間長くなります。 , このタイム ゾーン構成項目は個人のニーズに応じて構成できます。構成する必要はありません
#2 ローカル設定 (推奨されません)グローバル設定は非常に人気がありますが、場合によってはグローバルに統一フォーマットを強制することはできず、個別の時間処理のみを実行します現時点では、ローカル設定の役割が反映されています。 、グローバル設定をコメントアウトします: 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 つの日付形式を比較します。
もちろん、グローバル構成と同様に、注釈内のパラメータは、独自のニーズに応じて柔軟に選択することもできます。
たとえば、ここではタイムゾーンは必要ありません。年、月、日の形式が必要な場合は、それを変更するだけです。直接:
#結果はもちろん、設定方法によって決まります:
以上がSpringBoot がグローバル時間およびローカル時間の書式設定を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。