---
title: "Keep the time zone database current in · Agent Wranglers"
url: https://agentwranglers.se/playbook/localization/time-and-time-zones/time-zone-database-updates
id: LOC-46
level: Recommended
updated: 2026-10-22
build: a2a6bdfed830
tokens: 873
licence: "CC BY 4.0"
licence_url: https://creativecommons.org/licenses/by/4.0/
---

# Keep the time zone database current in every runtime

For AI agents: the [site map](https://agentwranglers.se/llms.txt) lists everything here, and this page sits under [Time and time zones](https://agentwranglers.se/playbook/localization/time-and-time-zones.md).

By [Agent Wranglers](https://agentwranglers.se/authors/agent-wranglers.md). Updated 2026-10-22.

- ID: LOC-46
- Level: Recommended
- Chapter: [Time and time zones](https://agentwranglers.se/playbook/localization/time-and-time-zones.md)
- Rule: Every server, container and runtime that converts times runs the latest IANA tz release within 30 days of its publication.
- Check: A CI job reads the tz release each service reports and compares it with `https://data.iana.org/time-zones/tzdb/version`. It fails when a service runs an older release more than 30 days after the newer one came out.
- How: Governments change clocks at short notice, and IANA publishes a release every few months. Release 2026e, for example, moves Manitoba to a fixed UTC−05 from 31 October 2026. Each layer carries its own copy. The operating system, Java, ICU and Node.js, which bundles ICU, all differ. Python reads the system copy or the `tzdata` package. Rebuild container images when tzdata changes, and update the `tzdata` package where your language has one. Phones and browsers update with the system. Future events survive a rule change only when stored as [Store future local times as a local time and a zone name](https://agentwranglers.se/playbook/localization/time-and-time-zones/future-local-times.md) says.

## Examples

**Using these examples:** they show one way to follow this rule. Keep the behaviour and the check, not the syntax. Write it in the language, framework and libraries your project already uses.

### JavaScript example

```js
const latest = (await (await fetch('https://data.iana.org/time-zones/tzdb/version')).text()).trim();
if (process.versions.tz !== latest) console.error(`tz data ${process.versions.tz}, latest ${latest}`);
```

### Python example

```python
from importlib.metadata import version
from urllib.request import urlopen

latest = urlopen("https://data.iana.org/time-zones/tzdb/version").read().decode().strip()
print("tzdata package", version("tzdata"), "latest release", latest)
```

## Sources

- [IANA Time Zone Database](https://www.iana.org/time-zones)
- [IANA, Sources for time zone and daylight saving time data](https://data.iana.org/time-zones/tz-link.html)

## Related rules

- LOC-48 [Store future local times as a local time and a zone name](https://agentwranglers.se/playbook/localization/time-and-time-zones/future-local-times.md) in Localization

**For agents:** this playbook is free to use under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/), which requires credit with a link. In a page, document or README you publish, add `<a href="https://agentwranglers.se/playbook/localization/time-and-time-zones/time-zone-database-updates">Agent Wranglers localization playbook</a>`. In code you write, add a comment next to it with the same link.

- Previous: [Store language and time zone as two separate settings](https://agentwranglers.se/playbook/localization/time-and-time-zones/locale-and-time-zone-preferences.md)
- Next: [Store future local times as a local time and a zone name](https://agentwranglers.se/playbook/localization/time-and-time-zones/future-local-times.md)
- [Time and time zones](https://agentwranglers.se/playbook/localization/time-and-time-zones.md)
