MySQLの保存時間の不一致の問題を解決する

MySQLの保存時間の不一致の問題を解決する

Java を使用してシステム時間を取得し、それを MySQL データベースに保存した後、時間タイプが datetime または Timestamp の場合、データベースの保存がローカル時間と一致しないことがわかります。

大きな原因は、MySQL に設定されているタイムゾーンがローカルタイムゾーンと一致していないことです。解決策は、オンラインで検索して見つけることができる MySQL タイムゾーン設定を変更することです。

私は2番目の方法をお勧めします

プロジェクトの実際のニーズに応じて、データベースに接続する DBUtil クラスで設定するだけです。たとえば、次のコードでは、タイムゾーンをアジアの上海と同じタイムゾーンに変更しました。

プライベート静的文字列ドライバー = "com.mysql.cj.jdbc.Driver";
    プライベート静的文字列 url = "jdbc:mysql://127.0.0.1:3306/mypetstore?serverTimezone=Asia/Shanghai&useSSL=false";

serverTimezone=Asia/Shanghai はタイムゾーンを設定するために使用されます。

MySQL からタイムスタンプ データを取得してブラウザに表示すると、末尾に常に .0 が付いてしまい、非常に煩わしいです。どうすればよいでしょうか?

次のEL式とJSTLタグを使用してフォーマットすることができます。log.dateは見つかった時間データです。

<fmt:formatDate 値="${log.date}" タイプ="日付" パターン="yyyy-MM-dd HH:mm:ss" />

注意: yyyy-MM-dd hh:mm:ssと書くと午前と午後の区別がつきません

補足:MySQL のストレージ時間または日付の不整合の問題

ここでは、MySQL データベースにレコードを追加するときに日付が 1 日ずれたり、時刻が間違っていたりする問題について説明します。

問題のシナリオ

コードロジックに問題はありません。ステップごとに実行すると、保存時の日付は正しいのですが、データベースに保存された日付が間違っていることがわかりました。

理由

理由は、データ ソース接続を構成するときに追加したパラメータに問題があるためです。正しく推測すると、構成した serverTimezone パラメータは UTC である必要があります。これは、間違ったタイム ゾーンが使用されているため、データを保存するときに日付が間違って配置されるためです。

ここに画像の説明を挿入

解決

以下のように、serverTimezone を Asia/Shanghai に設定します。もう一度試すと、問題は解決します。

ここに画像の説明を挿入

上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。間違いや不備な点がありましたら、遠慮なくご指摘ください。

以下もご興味があるかもしれません:
  • MySQL で時刻と日付の型を保存する際の選択問題を分析する
  • MySQLストレージ時間タイプの選択に関する問題の説明
  • 時刻を保存するために適切な MySQL の datetime 型を選択する方法
  • 指定された期間内のすべての日付または月を取得する MySQL ステートメント (ストアド プロシージャの設定やテーブルの追加は不要)
  • MySQL で日付を保存するためのベスト プラクティス ガイド

<<:  主軸上のFlex子要素の比率を制御する方法

>>:  Dockerコンテナの原理の分析

推薦する

Linux で top コマンドを使用する際のヒント

まず、top のいくつかのフィールドの意味を紹介します。 VIRT:仮想メモリ使用量1. プロセスが...

HTML での位置の使用に関する簡単な紹介

昨日 HTML を少し学んだばかりで、JD.com の検索バーを作るのが待ちきれませんでした。 作っ...

v-model 双方向バインディングデータを実装する vue カスタム コンポーネントのサンプル コード

プロジェクトでは、プロジェクトが呼び出すカスタム パブリック コンポーネントに遭遇します。通常、pr...

W3C チュートリアル (11): W3C DOM アクティビティ

ドキュメント オブジェクト モデル (DOM) は、プログラムがドキュメントのコンテンツ、構造、およ...

HTMLおよびJSPページがキャッシュされ、Webサーバーから再取得されるのを防ぎます。

ユーザーがログアウトした後、ブラウザの戻るボタンがクリックされると、Web アプリケーションは保護さ...

Nginx 外部ネットワーク アクセス イントラネット サイト構成操作

背景:サイトはフロントエンドとバックエンドから分離されています: vue+springbootフロン...

Nginx フォワードプロキシとリバースプロキシの違いと原理分析

1. フォワードプロキシとリバースプロキシの違いフォワード プロキシはクライアントのプロキシとして機...

SASSで変数のデフォルト値を使用する方法

SASS で定義された変数では、後で設定された値によって古い値が上書きされます。 $色: 赤; $色...

React で setInterval 関数を使用する例

この記事はWindows 10のシステム環境をベースに、Reactの学習と使用について説明しています...

純粋な CSS3 でペットの鶏のサンプルコードを実現

最近、CSS3に関する知識や記事をたくさん読んできましたが、CSS3はとても便利に使えると思います。...

ReactとReduxの配列処理の説明

この記事では、reduce()、filter()、map()、every()、some()、spre...

Reactはグローバル箇条書きボックスメソッドをカプセル化します

この記事の例では、Reactカプセル化グローバルポップアップボックスの具体的なコードを参考までに共有...

Linux システムで Vim を使用してリモート ファイルを読み書きするコマンドの詳細な説明

vim の動作モードを設定する (一時的) :set (モード情報) :set nu — 行番号を表...

基礎知識: ウェブサイトのアドレスの前の http はどういう意味ですか?

HTTPとは何ですか?ウェブサイトを閲覧したいときは、ブラウザのアドレス バーにウェブサイトのアド...