フロントエンドリクエストインターフェースの日付に対応するタイムゾーンの問題

フロントエンドは時刻値 2099-01-01T00:00:00+08:00 を springboot が提供する RESTful インターフェイスに送信し、mysql データベースに保存します。

データベースは 2098-12-31 16:00:00 に保存されていることがわかります。この時点では、mybatis の jdbctype は指定されておらず、デフォルトのタイムスタンプが使用されます。

タイムゾーンが間違っている Linux システムを確認したところ、mysql 自体のタイムゾーンには問題がなかったので、設定の問題と思われます。

Springboot で使用される Date オブジェクトは、出力値を直接受け入れて出力しますが、時刻は問題ないため、データベースの書き込みの一部に含まれている必要があります。

mybatisの設定には問題はありませんが、データベースURLへの接続のタイムゾーンの問題であることが分かりました。

serverTimezone=UTCは、 serverTimezone=GMT%2B8
に変更されました。GMT+8 は使用しないでください。プラス記号を使用すると問題が発生します。

テストを再度開始すると、データベースに期待どおりの内容が書き込まれます。


読み取り以外に、フロントエンドに返されるのは 2019-06-04T02:51:31.000+0000 で、これも East Eighth District に変換する必要があります。

上記のデータベースからの読み込みが設定されているので問題ないはずなので、オブジェクトをjsonに変換するときにSpringbootにある必要があります

spring.jackson.time-zone パラメーターが GMT+8 に設定されているだけです。

おすすめ

転載: blog.csdn.net/small_tu/article/details/90788168