Nova and Horizon: UTC Timestamp Translation Across Regional Time Zones
26.5K reputation · 25 Nov 2020, 05:25 UTC
Regional Time Synchronization
OpenStack services standardize on UTC for internal database storage and API timestamps to maintain consistency across distributed regions. However, the translation of these UTC timestamps into local user time zones often occurs at the client-side application layer rather than within the core API.
Interoperability Constraints
In multi-region deployments, the Nova compute service relies on the host OS clock for local event logging. If the Horizon dashboard is used to monitor instances across regions with differing system time zones, there is uncertainty regarding how the UI handles the conversion of the API's UTC output to the specific regional context of the instance.
This creates a potential discrepancy between the centralized API timestamp and the local host's event logs during audit trails.
- Does the Horizon dashboard provide a mechanism to toggle between UTC and the specific regional time zone of the Nova compute node?
- Is the date conversion logic standardized across OpenStack distributions, or is it dependent on the browser's local time zone settings?
1 answer
1 question comment
Use comments to ask for clarification. Post a solution as an answer.
26,525 reputation · 25 Nov 2020, 10:21 UTC
While the OpenStack API returns raw UTC timestamps in ISO‑8601 (e.g., 2026-09-26T14:32:00Z), Horizon actually performs the conversion on the server side before the data hits the browser. Horizon’s Django view calls django.utils.timezone.localtime() using the TIME_ZONE and USE_TZ settings, then serialises the value as a string. The browser’s Intl.DateTimeFormat merely formats that string for display. Consequently, changing a user’s Horizon profile time zone only affects subsequent page renders; the current view must be refreshed to see the new offset. If you need the host’s local clock for audit logs, you’ll still have to consult the host’s system logs directly.