2012-04-06 10 views
1

コンピュータ時計を変更した後、Javaアプリケーションで時間を取得したいと思います。 これは正しい時刻を取得していないようです。私のjavaアプリはクロックの変化を検出するための例Java Systemコンピュータ時計を変更した後の時間

Computer clock reads 1:30pm; new Date() returns 1:30pm 
Change computer clock to 12:30pm; 
Computer clock reads 12:30pm; new Date() returns 12:30pm 
Change computer clock to 1:30pm; 
Computer clock reads 1:30pm; new Date() returns 12:30pm 

については

それは可能ですか?

更新:あなたはに常時Xミリ秒後の時間をチェックするスレッドを作成することができ

+0

のように「日付」を立ち上げ、時間を読むことができますか? – jtahlborn

+0

私はWindows 7で実行しています – sworded

+1

IDEを再起動している場合は再起動してください。両方の実行で同じjvmインスタンスを持つことがあります。 – Ahamed

答えて

0

... Chromeのみに起こるようです。時間オフセットが+ -Nより大きい場合(これは他のプロセスがプロセッサを使用している可能性があるため、小さなエラーが存在する可能性があります)、時間のオフセットを作成します。次に、あなた自身のために新しい日付クラスを作成し、オフセットを追加して時間を取得します。

は、私はそれが完全に正確である場合は知らないが、それは例

のほとんどで動作します

EDIT: スレッドは、システムクロックの時間を記録し、スリープ状態になります。 10秒のスレッドスリープ時間のためにそう

例えば、我々は1秒の誤差のraitoを保つ

System clock = 10:00:00Recorded in Thread = 10:00:00Difference = null

スレッドは10秒

System clock = 10:00:11Recorded in Thread = 10:00:11Difference = 11offset=0などのために眠ります許容範囲内です。10 + - 1

スレッド10眠るCおよびSYSクロックは

System clock = 11:00:21Recorded in Thread = 11:00:21offset = 3599

Difference = 3600は今、あなたはこのオフセットを減算する必要が1時間増加しますが、正確ますが近くない午前10時00分22秒を取得します。

+2

「時間をチェックする」とはどういう意味ですか? – sworded

+0

私は間違った質問を読んだので、ここでは適切でない投稿を削除しました –

0

それともあなたはどのようなオペレーティングシステムこの

Runtime.exec("date").getInputStream() ... 
関連する問題