Fuchsia 中的元件可透過三種不同的時間標準讀取目前時間:
- Monotonic: Monotonic 時間是測量自開機系統後所經過的時間。Monoonic 時間總是向前邁進,並且適用於所有應用程式,但只適用於單一 Fuchsia 裝置上單一電源循環的內容。
- UTC:世界標準時間是系統對「協調中心時間」的最佳估算結果。世界標準時間通常是透過網路取得,因此在某些情況下可能不知道世界標準時間。使用 UTC 的開發人員應特別注意 UTC 行為,以瞭解 Fuchsia 世界標準時間的獨特屬性。
- 當地:當地時間是指系統根據裝置的所在位置標準時間 (又稱「壁鐘」) 提供的最佳預估值。當地時間衍生自 UTC 和時區,所以繼承了大部分 UTC 行為。某些條件不適用於當地時間。如果使用者變更時區,當地時間會大幅跳轉。
除了時間系統呼叫外,這些時間標準通常也可透過支援語言的時間函式使用。
開發人員必須選取最合適的時間標準來解決每個問題。Monoonic 時,故障模式最少,且行為最穩定,除非有某些原因,否則 Monoonic 時間不會成為預設選項。與當地時間相比,世界標準時間的失敗模式較少,行為更穩定。因此,除非需要某些本地時間,否則建議您優先採用本地時間。
例如:
- 使用單聲道時,在重試之間執行十秒的延遲時間。 無論在什麼情況下,都能使用 Monoonic 的時間,因此提供最簡單可靠的解決方案。
- 使用世界標準時間 (UTC) 後,系統會在 7 天後刪除及刪除儲存在磁碟中的檔案。這裡是單聲道時間,在整個週期中可保留到期時間,而當地時間則會將到期時間的正確性與時區設定結合。
- 使用世界標準時間來為裝置上的事件加上時間戳記,可由部分伺服器讀取。在這種情況下,單向時間就無法運作,因為伺服器可能不知道 Fuchsia 裝置上次開機的時間。如果使用本機時間,裝置和伺服器會同意時區,這很容易發生錯誤。
- 使用本機時間,以類似時鐘錶面向使用者顯示目前時間。當地時間對使用者而言最自然的標準,因此沒有其他時間的標準。
測試任何需要時間的程式碼並不容易。開發 Fuchsia 時間依附元件的工具和最佳做法正在開發中,並且會在這裡加以連結 (如果有的話)。