我需要在Java中獲得真實世界的日期和時間。我用:java.util.Date是否表示日期是否爲系統日期?
Date date = new Date();
但我不確定它不只是系統時間。我不需要依賴PC的本地日期和時間。
如果是這樣,那麼有沒有什麼辦法從它抽象出來?我的意思是我需要正確的時間和日期。如果今天是2012年5月1日,並且用戶在2000年12月1日之前發生了變化(可能有系統錯誤),它不應該影響業務邏輯。那麼有沒有其他辦法可以實現這一目標?
我需要在Java中獲得真實世界的日期和時間。我用:java.util.Date是否表示日期是否爲系統日期?
Date date = new Date();
但我不確定它不只是系統時間。我不需要依賴PC的本地日期和時間。
如果是這樣,那麼有沒有什麼辦法從它抽象出來?我的意思是我需要正確的時間和日期。如果今天是2012年5月1日,並且用戶在2000年12月1日之前發生了變化(可能有系統錯誤),它不應該影響業務邏輯。那麼有沒有其他辦法可以實現這一目標?
Date
只有表示自1970年1月1日UTC(模閏秒)的Unix紀元的時間瞬間,以毫秒爲單位。它的數據中沒有時區的概念。但是,如果使用toString
方法,它將始終使用系統時區將UTC即時轉換爲本地日期/時間。這讓很多用戶感到困惑,使他們認爲Date
包含一個時區 - 這只是一個幻覺。
同樣Date
沒有任何日曆系統(格里高利,朱利安等)或「格式」的概念。基本上,它只是一個long
:)
請參見下面的相同的SO問題: http://stackoverflow.com/questions/308683/how-can-i-get-the-current-date-and-time-in -utc-or-gmt-in-java –
我不確定這是否真的是重複的(至少不是指定的問題之一)。我理解這個問題的方式是,如果系統時鐘被設置爲錯誤的日期,那麼目標是獲得「真實世界的日期」。在這種情況下,答案將是查詢時間服務器。請參閱例如:http://stackoverflow.com/questions/925191/java-ntp-client – martin
@martin是的,你是對的 – Dragon