時間總覽

Fuchsia 上的元件可使用四種不同的時間標準讀取目前時間:

  • Monotonic:單調時間是測量時間的測量結果 因為系統是開機所致 單調時間一律會向前移動,且所有應用程式一律可使用,但只有在單一 Fuchsia 裝置上單一電源週期的情境下才有意義。
  • 啟動:啟動時間用於測量系統啟動時間 裝置已開啟 (包括任何使用「暫停至閒置狀態」的時間)。類似單調 時間、開機時間一律向前移動、隨時都能取得 單憑單一發電週期的背景脈絡分明 裝置。
  • 世界標準時間:系統會根據世界標準時間做出最佳預估。UTC 通常是透過網路取得 因此,系統可能無法在這類情況下都不知道世界標準時間 (UTC)。使用世界標準時間的開發人員應特別留意世界標準時間行為,以瞭解 Fuchsia 上世界標準時間的獨特屬性。
  • 本機:本機時間是系統對裝置所在位置的標準時間最佳預估值,也稱為「時鐘時間」。當地時間 衍生自世界標準時間和時區,因此沿用許多 世界標準時間行為。在某些情況下,系統無法提供本地時間。如果使用者變更時區,本機時間會大幅跳躍。

除了時間系統呼叫,這些時間標準通常可透過支援語言中的時間函式取得。

開發人員必須選取最適當的時間標準來解決每個問題。除非您的程式需要瞭解處於 Suspend-To-Idle 狀態的時間,否則建議您使用單調時間。如果時間戳記必須與底層硬體或外部服務保持同步,且需要單調性,建議使用啟動時間。如果時間戳記必須為 也不需要與外部服務關聯和單調性。當地時間是世界標準時間的衍生品,通常只用於 UX 應用程式。

例如:

  1. 使用單調時間,在重試之間實作 10 秒的延遲時間。在所有情況下,系統都會提供單調時間,因此這是最簡單且最可靠的解決方案。
  2. 使用啟動時間來記錄 Fuchsia 中的追蹤記錄點,因為追蹤記錄應會顯示 時間暫停,且時間不能來回跳轉。
  3. 請按世界標準時間的有效期限,並在七天後刪除儲存在磁碟上的檔案。 在這個單調時間中,逾時時間不會限制 與當地時間相輔相成,相輔相成 時區設定的到期時間正確。
  4. 使用世界標準時間來設定裝置端事件時間戳記,供部分使用者讀取 伺服器在這種情況下,單調時間無法運作,因為伺服器可能不知道 Fuchsia 裝置上次開機的時間。使用當地時間 裝置和伺服器必須同意時區,否則會發生錯誤 程式
  5. 使用當地時間,以類比時鐘錶面向使用者顯示目前時間。當地時間是使用者最自然的時間標準,因此其他時間標準在此處並不實用。

在各種平台上測試會花費時間的程式碼可能並不容易。工具和 開發與測試 Fuchsia 時間依附元件的最佳做法 如果有,就會與這個頁面連結。