2017-06-20 12 views
0

DBに格納されている現在時刻と時刻の差を取得しようとしています。 java.lang.System.currentTimeMillis()が UTC時間を返すので、以下のコードを試しましたが、正しい結果が得られませんでしたが、EST形式でアプリケーションに日付を保存します。どのように異なるタイムゾーンの時間差を取得するには?

コード:

java.lang.System.currentTimeMillis() - emp.getModifiedDate() 

あなたが私にそれを行うための正しい方法を提案してもらえそれは私にとってからのミリ秒数を返しますSystem.currentTimeMillis()

おかげ

+0

'のSystem.currentTimeMillis()'、実際に*システム*の時間ではなく、UTC時刻を返します。 – Okx

+0

j8を使用できますか? –

+7

ミリ秒をデータベースに格納している場合、タイムゾーンには入っていません。これは、Unixエポック(または他のいくつかのエポック)からのミリ秒数です。 –

答えて

0

非常に参考になりますか? 1970年1月1日、UTC。それはタイムゾーンにとらわれない。

データベースに時間をミリ秒として格納する場合は、2つの数値を単に差し引くと、正しい差が得られます。

時間を別の方法で(たとえば文字列として)保存している場合は、それを解析して(たとえば、SimpleDateFormat)タイムゾーンを考慮に入れてから、Dateを取得してからミリ秒を取得できます。

0

希望すると便利です。これは、あなたの日数の違いを与えるでしょう。

Date date1 = new Date(); 
long diff = date1.getTime() - emp.getModifiedDate().getTime();   
System.out.println((int) (diff)/(1000 * 60 * 60 * 24))); 

よりread this

関連する問題