blob: b7ce025b02dbb58f5b6f893dfa43e5a68228de22 [file] [log] [blame] [view]
# UTC Time
UTC time is the systems best estimate of [Coordinated Universal Time][1].
[Architecture](architecture.md) covers the overall architecture of the time
synchronization system including the roles and responsibilities of each
component involved.
On boards with a Real Time Clock (RTC), the system initializes UTC time from the
RTC shortly after power on. On all boards, the system periodically updates UTC
from one or more network time sources once a network is available. In principle,
these time sources could be configured separately for each product, but
currently all products source UTC from google.com using
[HTTPSdate](/src/sys/time/httpsdate_time_source/README.md).
[Algorithms](algorithms.md) covers the time synchronization algorithms
implemented by the central component in the time synchronization system,
[Timekeeper](/src/sys/time/timekeeper).
UTC is distributed to components using a
[kernel clock object](/docs/reference/kernel_objects/clock.md), with each
process holding a handle to this clock object (providing the parent process
supplied this clock). If you are developing components that use UTC, you should
read [UTC behavior](behavior.md) to learn how to acquire UTC time and understand
the behavior the UTC clock may exhibit both before and after time
synchronization.
Previously the kernel maintained an additional internal UTC clock that could be
accessed through [`zx_clock_get`](/docs/reference/syscalls/clock_get.md). This
clock is deprecated and should no longer be used.
[1]: https://en.wikipedia.org/wiki/Coordinated_Universal_Time