Date date = new Date();
會給我們哪裏運行應用程序該服務器的日期。 如果特定的服務器在這種情況下設置了日期和時間錯誤,我們如何獲得真實的日期和時間?
Date date = new Date();
會給我們哪裏運行應用程序該服務器的日期。 如果特定的服務器在這種情況下設置了日期和時間錯誤,我們如何獲得真實的日期和時間?
我不會擔心服務器的正確日期。我的意思是服務器通常由您管理,所以只需正確設置時間或使用NTP自動設置正確的時間。
這是客戶的日期/時間,你應該擔心,因爲這是由你的用戶設置,並可能是錯誤的所有的時間。如果您需要信任客戶端的時間,並且需要它對多個用戶來說是可靠和可比較的,那麼從服務器中檢索時間並考慮延遲(如果需要的話)。
感謝Matthias .... –
我同意Matthias。爲了仔細檢查服務器,我添加了啓動服務器應用程序時運行的代碼,以便從可靠來源獲取時間並與服務器的計算機時鐘進行比較。如果差距太大,我會發出警報,發送電子郵件或其他信息。對於長時間運行的應用程序,編寫一個大部分時間休眠的守護進程,並且偶爾醒來後運行相同的檢查。如果您有權訪問服務器,請確認它正確地從其他來源獲取當前時間,只需簡單地設置其時鐘,然後等待查看是否自行更正(但在適當的時間這樣做)。 –
[獲取當前時間](http://www.commandlinefu.com/commands/view/4215/get-the-time-from-nist.gov)來自美國國家標準與技術研究院。例如:'curl -s time.nist.gov:13' –
我想用一個web服務。但是,你必須考慮延遲。 –
「錯誤」是否意味着時區未被記錄,或者它完全不正確? – azz