Timezones
A curated set of IANA timezones spanning every populated region of the world, with the UTC offset in standard and daylight saving time, the most common abbreviation, and an alias-of pointer for deprecated zone names so client code can normalise to canonical zones.
Quick fetch
Stable, immutable URL. CORS-enabled. No auth.
curl https://staticdata.dev/v1/timezones.json
Or use as a typed import:
import { timezones } from "https://staticdata.dev/v1/timezones.ts"
Formats
- JSON 17.1 KB
/v1/timezones.json
min: 12.8 KB · /v1/timezones.min.json
- CSV 4.0 KB
/v1/timezones.csv
- TypeScript 17.3 KB
/v1/timezones.ts
export const timezones
type Timezone = (typeof timezones)[number]
Schema
Each record in the dataset has the following shape.
| Field | Type | Description | Example |
|---|---|---|---|
| name | string | IANA timezone identifier (Region/City format) | America/New_York |
| country? | string | null | ISO 3166-1 alpha-2 country code (null for UTC) | US |
| offsetStandard | string | UTC offset during standard time | -05:00 |
| offsetDst | string | UTC offset during daylight saving time (equal to standard if no DST) | -04:00 |
| abbreviation | string | Common abbreviation | EST |
| aliasOf? | string | null | Canonical zone this is an alias of, or null if canonical |
Preview
First 10 records.
| name | country | offsetStandard | offsetDst | abbreviation | aliasOf |
|---|---|---|---|---|---|
| Africa/Abidjan | CI | +00:00 | +00:00 | GMT | |
| Africa/Accra | GH | +00:00 | +00:00 | GMT | |
| Africa/Addis_Ababa | ET | +03:00 | +03:00 | EAT | Africa/Nairobi |
| Africa/Algiers | DZ | +01:00 | +01:00 | CET | |
| Africa/Cairo | EG | +02:00 | +03:00 | EET | |
| Africa/Casablanca | MA | +01:00 | +00:00 | +01 | |
| Africa/Johannesburg | ZA | +02:00 | +02:00 | SAST | |
| Africa/Lagos | NG | +01:00 | +01:00 | WAT | |
| Africa/Nairobi | KE | +03:00 | +03:00 | EAT | |
| Africa/Tunis | TN | +01:00 | +01:00 | CET |
Fetch examples
Drop-in snippets in five languages.
curl -sSL https://staticdata.dev/v1/timezones.json | jq '.[0]' import type { Timezone } from "https://staticdata.dev/v1/timezones.ts";
const res = await fetch("https://staticdata.dev/v1/timezones.min.json");
if (!res.ok) throw new Error(`Fetch failed: ${res.status}`);
const timezones: Timezone[] = await res.json();
console.log(timezones[0]); import urllib.request, json
with urllib.request.urlopen("https://staticdata.dev/v1/timezones.min.json") as r:
timezones = json.load(r)
print(timezones[0]) package main
import (
"encoding/json"
"fmt"
"net/http"
)
func main() {
resp, err := http.Get("https://staticdata.dev/v1/timezones.min.json")
if err != nil { panic(err) }
defer resp.Body.Close()
var data []map[string]any
if err := json.NewDecoder(resp.Body).Decode(&data); err != nil {
panic(err)
}
fmt.Println(data[0])
} use serde_json::Value;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let body = ureq::get("https://staticdata.dev/v1/timezones.min.json").call()?.into_string()?;
let data: Vec<Value> = serde_json::from_str(&body)?;
println!("{:?}", data.first());
Ok(())
} Sources and methodology
The dataset includes the canonical IANA zones for every populated region plus a small set of common aliases (Europe/Kiev → Europe/Kyiv, Asia/Calcutta → Asia/Kolkata, America/Montreal → America/Toronto) so that legacy data normalised against older tzdata releases can be mapped to current names.
Offsets reflect the rules in effect at the time of the most recent build. Some zones have non-standard DST schedules; for full accuracy at any point in time, use a runtime library backed by tzdata rather than these static offsets. This dataset is for picker UIs and approximate offset display, not for date arithmetic.
Abbreviations are not unique. CST refers to Central Standard Time, China Standard Time, and Cuba Standard Time. Use the full IANA name as the canonical identifier.
A pure-UTC zone is included with country: null.
Versioning
URLs under /v1/ are immutable. The data they return will not change in a way
that breaks consumers. Schema-incompatible updates ship under a new version path. See the
timezones changelog for this dataset's history.