MySQLは、Javaアプリケーションからの入力から提供された日付に1日以前の日付を保存しています

sarwar026:

私は私の現在のプロジェクトで、以下の仕様を使用しています(生産)

  1. OS:CentOSの7
  2. データベース:MySQLの
  3. Javaの8
  4. 休止状態
  5. Tomcatサーバー8

データベースは、アプリケーション・サーバーとは別のサーバーにあるが、両方が同じLAN内にあります。

MySQLのテーブル内のデータ型は次のとおりです。date日付のみを格納するとdatetime、時間とともに日付を保存するため。

問題は、MySQLのすべての日1日早くapplcationから提供された日付よりも保存されます。私は今まで、以下のことを試してみましたが、それでも運きました:

  1. 私は、アジア/ダッカとしてアプリケーションとデータベース・サーバーの両方のためのタイムゾーンを設定し、あまりにも私のJavaアプリケーションからこれをチェックしています。
  2. 私はまた、Tomcatサーバー(setenv.sh)ファイルにタイムゾーンを設定しています。
  3. 私はまた、日付も入力日と同じであるのlog4jプロパティファイルにTRACEにより休止状態から生成されたSQLをチェックしています。

私は何をしないのですか?誰もがお勧めすることはできますか?

sarwar026:

問題に関するあなたの経験を共有するためのすべてに感謝します。

最後に、私は変更することで、それを解決serverTimezoneしてmysqlの接続文字列の属性をdispatcher-servlet、私のJava Webアプリケーションの。

<property name="url" value="jdbc:mysql://x.x.x..x:3306/dbname?characterEncoding=utf-8&amp;useSSL=false&amp;serverTimezone=Asia/Dhaka" /> 

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=218537&siteId=1