2013-10-30 80 views
-2

DateTime.Now返回當前日期。但是如果有人更改了系統日期,DataTime.Now實際上不會返回實際當前數據。我們可以真的得到ACTUAL日期嗎?

所以問題是,在計算機中有沒有一些地方(可能是處理器或...),它總是保存實際的日期?如果是的話,我們如何檢索這些數據。請假定應用程序沒有訪問互聯網和本地網絡(它完全斷開連接)。

+0

基本上,不,你不能。不是沒有特殊的硬件(例如可以從無線時鐘發射源讀取時間的無線時鐘接收器) –

+0

在過去,我從BIOS中獲取日期/時間。但這並非完全安全。 – Stefan

+2

您認爲CPU使用天空中的星星來定義實際的當前日期嗎? –

回答

7

有精確的兩種方式來獲得當前時間:

  1. 檢查一次計算機
  2. 從外部服務器獲取它(例如,互聯網,局域網,一些無線電廣播...

如果你不相信在計算機本身設置的時間,那麼你唯一的選擇是第二個,這一定需要conn您可以在可以信任系統時間。

1

不,計算機中沒有保存正確時間的魔法時鐘。

如果你對正確的時間有興趣,你應該看看NTP (network time protokol)

+0

甚至NTP只告訴你選擇的NTP服務器希望傳達的時間......我想知道OP的偏執有多遠 –

+0

你必須相信某人。 –

1

問題當然是在「真實」日期或時間的定義中。

也許OP有一個清楚的想法是什麼意思,但有沒有這樣的事情。

如果我在我的電腦裏有一個地方可以存儲實際的,正確的,天文調整的日期,那麼當我撿起它並向東或向西旅行時,我的「實際」日期和時間應該已經改變。

現在,我的電腦中的魔盒會如何知道?

所以,不,沒有「實際」日期/時間。

有兩個日期/時間,你可以使用:

1)所報告的用戶系統的地方之一。就用戶而言,這個的實際日期/時間。 2)參考日期/時間,如UTC,或預定義時區中的任何當前時間。這與客戶報告的日期/時間無關。

什麼你可以做,當然是想弄清楚客戶的地理位置,並計算出哪些客戶的實際日期/時間應該是作爲來自祖魯時間偏移。

相關問題