2017-01-17 13 views
1

私はジョーダタイムを使用していますが、最近は1つの問題があります。この値をデータベースに挿入した後(私はORMフレームワークとしてHibernate4を使用しています)、値は1/30/2017 4:00:00 PM(私はIBM DB2を使用していますが、MySqlも同じです)というUTC時刻に自動的に変換されます。データベースから取得すると、2017-01-31T00:00:00.000+08:00に変換されます。ジョーダの日付時刻とタイムゾーンのオフセット(DBへの挿入後)がUTC時刻に変更されます

これはなぜ起こるのでしょうか?これについていくつかのグローバル設定を行うことはできますか?データベースにUTC時間の代わりに現地時間を格納したい(1/31/2017 0:00:00 AMなど)ので、DB設定を変更するか、コードレベルで行う必要がありますか?本当にこのタイムゾーンの処理に関する多くの経験は、誰も私を助けることができますか?ありがとう!代わり

<property name="jadira.usertype.databaseZone">Asia/Singapore</property> 
<property name="jadira.usertype.javaZone">Asia/Singapore</property> 

+0

"設定"したいのは何ですか?あなたが好きではないことは何ですか? – chrylis

+0

私はこれを解決するためにいくつかの一回の設定を行うことができますが、私が気に入らないのは、それぞれの単一の 'DateTime'オブジェクトに対する操作です。 –

+0

*何が間違っているのか説明していません。特に、内部的に、特にデータベースでは、すべての場合にUTCを使用する必要があります。 – chrylis

答えて

0

は数時間の調査の後、私は最終的に私は設定XMLを休止状態にするために、私はちょうどラインの下に追加されて何をする必要があるか休止状態を使用しておりますので、この問題の解決策を見つけた

<property name="jadira.usertype.databaseZone">jvm</property> 
<property name="jadira.usertype.javaZone">jvm</property> 

すべて正常に機能します。

関連する問題