2 回答

TA貢獻1840條經(jīng)驗 獲得超5個贊
在 Linux 平臺上,系統(tǒng)時鐘應設置為 UTC。它是否確實如此,是否準確,最終取決于用戶。
調用System.currentTimeMillis()
?將給出 UTC 時間,因為1970-01-01T00:00:00Z
。
國際的結果正確嗎?
是的。只要時鐘與合適的網(wǎng)絡時間源同步并且用戶沒有弄亂它。
也許用戶可以更改設備時間并且結果會有所不同?
是的他們可以。你對此無能為力。
您可以嘗試連接到網(wǎng)絡時間服務器,但用戶可能會阻止它,或者導致您的游戲連接到虛假時間服務器。如果他們“擁有”您的游戲運行的平臺,您可能無法獲得有保證的可靠時間。

TA貢獻1816條經(jīng)驗 獲得超4個贊
關于獲取正確的“本地”或“國際”時間存在一個常見的誤解。時間本身并不知道這些概念,我會在這里嘗試給出解釋,因為其他人還在搜索它。
請注意,假設機器時鐘在計時時是準確的,并且啟動時的初始時間設置也是正確的,則以下內容適用。另請注意,大多數(shù)連接的設備會不時將此內部時鐘與網(wǎng)絡源同步,以使其準確運行。
時間本身是我們無法控制的,它一瞬間流逝。但是時間表示(秒、小時、天、年、十年)是人類創(chuàng)造的概念,只是為了更清楚地了解時間的流逝。你可以想象如果我們在片刻討論時間會造成混亂—— “嘿,我將在 901400203150 片刻去商店,你愿意加入嗎?” .
反正時區(qū)也是一樣,是人為的概念。我們生活在地球上,靠近太陽和月亮,太空中發(fā)生了一些旋轉,使我們認識到較長的時間段稱為“年”,較短的時間段稱為“月”。我們還認識到,早晨在某些地方來得早,而在其他地方來得晚 - 因此,我們引入了時間計算和時區(qū),讓地球上的每個人都能更輕松地跟蹤時間。但是在一萬年前,沒有人知道時區(qū),但時間卻在流逝。
因此,考慮到這一點來回答最初的問題:是的,如果您有興趣獲得絕對當前時間,該方法將起作用。
如前所述,沒有“國際”或“本地”時間之分,每個人的時間都是一樣的。我們在提及轉換為并以特定時區(qū)格式呈現(xiàn)的時間值時使用這些術語。今天我們有一個叫做 Epoch 的東西(對于人類:00:00:00 UTC on 1 January 1970
,對于大多數(shù)機器: )——所以獲取“自 Epoch 以來的毫秒數(shù)”將為您提供自 Epoch 以來經(jīng)過的原始時間0
量,以毫秒表示。
時間本身不知道時區(qū)或年份或月份,這是一個你必須自己轉換的人類構造?;旧?,您從操作系統(tǒng)獲得的是原始時間,然后將其轉換為所需的時區(qū)、所需的格式和語言,以方便用戶閱讀。以及如何轉換時間 - 這是一個完全不同的問題。:)
添加回答
舉報