Unixサーバー(WAS 5.1)で実行されている次のコードがあります。これは、当社のテスト環境です。以下のコードを実行しようとすると、常に昨日の日付が表示されます(つまり、今日9/27/2012を実行すると、日付は9/26/2012として返されます)
long userSelectedTimeLong = date.getTime()
Unixサーバー(WAS 5.1)で実行されている次のコードがあります。これは、当社のテスト環境です。以下のコードを実行しようとすると、常に昨日の日付が表示されます(つまり、今日9/27/2012を実行すると、日付は9/26/2012として返されます)
long userSelectedTimeLong = date.getTime()
TimeZone
日付は、マシンに基づいて時刻を返します。サーバーが他の場所でホストされている可能性があり、TimeZoneの値が異なります。同じTimeZoneを使用して、日付の値を比較する必要があります。
その次のタスクを実行すると、date
変数は実際には現在の日付を含みます。を使用して簡単なログを印刷できますnew Date().getTime()
私は一度同様の問題を抱えていました;-)アプリケーションの起動時にローカルの日付変数がインスタンス化され、アプリケーションの実行中にperhabsが更新されないかどうかを確認してください。
それは良い使い方でしょう
long userSelectedTimeLong = Calendar.getInstance().getTimeInMillis()
別の可能性:サーバーはある種のタイムサービスと同期しますか?(ntp、...)たぶん、間違って設定されたのは、Unixマシンのシステム日付だけです。