2016-11-23 4 views
-2

私は、以下の考え方につまずいたし、あなたの意見を知りたいと思った:JVMはどこから日付を取得して印刷しますか?

DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); 
Date date = new Date(); 
System.out.println(dateFormat.format(date)); 

ユーザーのコンピュータが間違った日付に設定されている場合、これはプリントアウト間違った日付ですありません。 JVMはどこから日付を取得しますか?エンドユーザーが日付を調整した場合でも、日付が常に正しく印刷されるようにする方法

+6

それは、システムのを使用していますあなたがそれを変更した場合、JVMはそれが良いものではないと言う方法がありません:) – Berger

+2

''新しいDate() ''は '' System.currentTimeMillis() 'にタイムスタンプの内部値を設定します。 '。 – f1sh

+4

ユーザーが設定した時刻は正しい時刻です。これはその時刻です。オフラインで、コンピュータの時間を手動で設定する必要があった場合、「正しい」時間をどのように決定しますか? – Rogue

答えて

1

JVMはシステムから日付を取得します。間違って設定すると、間違ったタイミングが与えられます。それでも正しいタイミングを得たい場合は、インターネットからタイムゾーンに応じて正しい日付、時刻を取得するREST APIを使用できます。

ユーザーがあなたが表示されますものです、自分の時間、タイムゾーン、日付などを誤って設定しているので、もしjavaは、システムクロックに依存しているTimeZone

2

から無料のAPIを取得することができます。

あなたのコードが動作可能なインターネット接続を想定できる場合は、おそらくインターネット時刻サーバに接続して正しい時刻を取得するためにjava NTP implementationを使用することができます。あなたはNTPの提供精度の程度を必要といけないし、あなたが時間を提供し、残りのAPIの任意の数を打つことができシンプルな何かをしたい場合はHow to use an Internet time server to get the time?

- -

は、ここに詳細情報を見るhere is one

+0

oracle DBのsysdateはどうですか? –

+0

@RPenumaka - ドキュメント(https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions172.htm)に従って - "データベースが存在するオペレーティング・システムに設定されている現在の日付と時刻を戻します「住んでいる」。基本的にインフラストラクチャサービスのプロセスは、インターネット接続を常時動作させることはできません。したがって、それらはすべてOSクロックになります。 – radai

関連する問題