0

Unixサーバー(WAS 5.1)で実行されている次のコードがあります。これは、当社のテスト環境です。以下のコードを実行しようとすると、常に昨日の日付が表示されます(つまり、今日9/27/2012を実行すると、日付は9/26/2012として返されます)

long userSelectedTimeLong = date.getTime()
4

4 に答える 4

1

TimeZone日付は、マシンに基づいて時刻を返します。サーバーが他の場所でホストされている可能性があり、TimeZoneの値が異なります。同じTimeZoneを使用して、日付の値を比較する必要があります。

その次のタスクを実行すると、date変数は実際には現在の日付を含みます。を使用して簡単なログを印刷できますnew Date().getTime()

于 2012-09-27T11:51:15.767 に答える
0

私は一度同様の問題を抱えていました;-)アプリケーションの起動時にローカルの日付変数がインスタンス化され、アプリケーションの実行中にperhabsが更新されないかどうかを確認してください。

于 2012-09-27T12:08:01.000 に答える
0

それは良い使い方でしょう long userSelectedTimeLong = Calendar.getInstance().getTimeInMillis()

于 2012-09-27T12:18:22.947 に答える
0

別の可能性:サーバーはある種のタイムサービスと同期しますか?(ntp、...)たぶん、間違って設定されたのは、Unixマシンのシステム日付だけです。

于 2012-09-27T12:59:37.933 に答える