Zeitzonen-Tabelle

std.time liefert alle 117 Zonen dieser Tabelle fertig aus — abgefragt über das Kürzel mit ZoneByCode. TimeZone bleibt ein gewöhnliches Struct aus name: pchar und offset_seconds: int64; eigene Zonen baut ZoneMake. Diese Seite ist die Nachschlagetabelle dazu: 117 Zonen mit dem Versatz in Sekunden.

Guide Zeit & Datum · std.time · std.datetime


Die Funktionen

Signatur Beschreibung
ZoneByCode(code: pchar): TimeZone Zone zum Kürzel, über alle 117 Einträge
ZoneCodeKnown(code: pchar): bool ist das Kürzel bekannt?
ZoneMake(name: pchar, offset_seconds: int64): TimeZone eigene Zone bauen
ZoneUTC() / ZoneCET() / ZoneCEST() die drei alten Bequemlichkeitsfunktionen
ZoneIndia() / ZoneIsrael() die beiden Bedeutungen von IST
ZoneGulf() / ZoneSouthGeorgia() die beiden Bedeutungen von GST
ZoneIndochina() / ZoneChagos() die beiden Bedeutungen von ICT
ZoneEest(), ZoneWest(), ZoneIdt(), ZoneAcdt(), ZoneAedt(), ZoneLhdt(), ZoneChadt(), ZoneEasst(), ZoneNzdt(), ZoneAzost(), ZoneNfdt() die elf Sommerzeiten (CEST hat eine eigene Funktion)

Dazu 33 Versatz-Konstanten — damit niemand krumme Sekundenwerte abschreibt: TZ_OFF_UTC, TZ_OFF_PLUS_0100TZ_OFF_PLUS_1400, TZ_OFF_PLUS_0545, TZ_OFF_PLUS_1245, TZ_OFF_MINUS_0100TZ_OFF_MINUS_1100, TZ_OFF_MINUS_0930. Das Schema ist TZ_OFF_PLUS_HHMM beziehungsweise TZ_OFF_MINUS_HHMM.

 
Ein unbekanntes Kürzel ist kein Fehler. ZoneByCode liefert dann name = 0 und offset_seconds = 0 — das ist von UTC nicht zu unterscheiden. Wer geprüft haben will, ob es die Zone gibt, fragt vorher ZoneCodeKnown.

Diese Erweiterung (#1600) steckt in der Repo-Fassung der Standardbibliothek; die ausgelieferte Fassung unter /usr/include/lyx/units hinkt hinterher (#1578). Bei undefined function 'ZoneByCode' gegen die Repo-Fassung übersetzen: lyxc --std-path=/pfad/zum/compiler-repo programm.lyx -o programm.

Das Muster

unit main;
import std.io;
import std.string;
import std.time;

fn Zeig(bez: pchar, utc: datetime, z: TimeZone): void {
    var lok: datetime := ApplyTimeZone(utc, z);
    Print(bez); Print(" : "); Print(IntToStr(lok as int64));
    Print("  (Versatz "); Print(IntToStr((lok as int64) - (utc as int64)));
    PrintLn(" s)");
}

fn main(): int64 {
    var utc: datetime := DatetimeFromUnixSeconds(1786977000);
    Print("UTC   : "); PrintLn(IntToStr(utc as int64));
    Zeig("LINT ", utc, ZoneByCode("LINT"c));
    Zeig("CHAST", utc, ZoneByCode("CHAST"c));
    Zeig("NPT  ", utc, ZoneByCode("NPT"c));
    Zeig("MART ", utc, ZoneByCode("MART"c));
    Zeig("IST  ", utc, ZoneByCode("IST"c));
    Zeig("Israel", utc, ZoneIsrael());
    Zeig("eigen", utc, ZoneMake("XYZ"c, TZ_OFF_PLUS_0545));
    Print("ZoneCodeKnown(NPT) : ");
    if (ZoneCodeKnown("NPT"c)) { PrintLn("true"); } else { PrintLn("false"); }
    Print("ZoneCodeKnown(XYZ) : ");
    if (ZoneCodeKnown("XYZ"c)) { PrintLn("true"); } else { PrintLn("false"); }
    var u: TimeZone := ZoneByCode("XYZ"c);
    Print("ZoneByCode(XYZ).offset : "); PrintLn(IntToStr(u.offset_seconds));
    return 0;
}

UTC   : 1786977000
LINT  : 1787027400  (Versatz 50400 s)
CHAST : 1787022900  (Versatz 45900 s)
NPT   : 1786997700  (Versatz 20700 s)
MART  : 1786942800  (Versatz -34200 s)
IST   : 1786996800  (Versatz 19800 s)
Israel : 1786984200  (Versatz 7200 s)
eigen : 1786997700  (Versatz 20700 s)
ZoneCodeKnown(NPT) : true
ZoneCodeKnown(XYZ) : false
ZoneByCode(XYZ).offset : 0

Halbe und dreiviertel Stunden sind kein Sonderfall, negative Versätze auch nicht — es sind schlicht Sekunden.


Vorsicht: drei Kürzel sind doppelt belegt

Wer die Tabelle als Nachschlagewerk über das Kürzel benutzt, trifft auf drei Fälle, in denen dasselbe Kürzel zwei verschiedene Zonen bezeichnet:

Kürzel Bedeutung 1 Bedeutung 2
IST Indische Standardzeit, +05:30 (19800 s) Israelische Standardzeit, +02:00 (7200 s)
GST Golf-Standardzeit, +04:00 (14400 s) South-Georgia-Zeit, −02:00 (−7200 s)
ICT Indochina-Zeit, +07:00 (25200 s) Indische Chagos-Zeit, +06:00 (21600 s)

Dazu kommen Kürzel, die außerhalb dieser Tabelle anders belegt sind: CST steht hier für China (+8), in Nordamerika für Central Standard Time (−6); PST hier für Pitcairn (−8), üblicherweise für Pacific Standard Time (−8, zufällig gleich); BST hier für Bangladesch (+6), im Vereinigten Königreich für British Summer Time (+1); AST hier für Arabia (+3), in Kanada für Atlantic Standard Time (−4).

Deshalb: den Versatz speichern, nicht das Kürzel. Ein Kürzel allein identifiziert keine Zone.


Sommerzeit ist in dieser Tabelle nicht enthalten

Alle Werte sind Standardzeiten (Winterzeit). Wo eine Sommerzeit existiert, hat sie ein eigenes Kürzel und einen um in der Regel eine Stunde größeren Versatz — CET→CEST, EET→EEST, WET→WEST, IST(Israel)→IDT, ACST→ACDT, AEST→AEDT, LHST→LHDT (dort nur +30 min), CHAST→CHADT, EAST→EASST, NZST→NZDT, AZOT→AZOST, NFT→NFDT.

Wann umgeschaltet wird, weiß keine Funktion der Standardbibliothek. Es gibt keine Zeitzonendatenbank; /etc/localtime wird nicht gelesen, und GetTimezoneOffset() aus std.datetime wertet die POSIX-Sommerzeitregel hinter dem Zonennamen ausdrücklich nicht aus. Die Umschaltregel muss der Aufrufer selbst anwenden.


Die Tabelle

Europa

Kürzel Bezeichnung UTC offset_seconds Länder / Regionen
CET Mittel-Europäische Zeit +1 3600 Deutschland, Österreich, Schweiz, Frankreich, Italien, Polen, Spanien (Festland) u. 26 weitere
EET Ost-Europäische Zeit +2 7200 Bulgarien, Estland, Finnland, Griechenland, Lettland, Libanon, Libyen, Litauen, Moldawien, Palästina, Rumänien, Russland (Kaliningrad), Ukraine (Festland), Zypern, Ägypten, Ålandinseln
MSK Moskau Standardzeit +3 10800 Belarus, Russland (Moskau, Wolgograd), Ukraine (Krim)
SAMT Samara Zeit +4 14400 Russland (Samara)
TRT Türkei Zeit +3 10800 Türkei
WET West-Europäische Zeit +0 0 Färöer, Portugal (Madeira, Lissabon), Spanien (Kanaren)

Afrika

Kürzel Bezeichnung UTC offset_seconds Länder / Regionen
CAT Zentral-Afrikanische Zeit +2 7200 Botswana, Burundi, DR Kongo (Lubumbashi), Malawi, Mosambik, Namibia, Ruanda, Sambia, Simbabwe, Sudan, Südsudan
EAT Ostafrikanische Zeit +3 10800 Dschibuti, Eritrea, Kenia, Komoren, Madagaskar, Mayotte, Somalia, Tansania, Uganda, Äthiopien
GMT Mittlere Greenwich Zeit +0 0 Vereinigtes Königreich, Irland, Island, Ghana, Senegal, Mali u. weitere
SAST Süd-Afrikanische Standardzeit +2 7200 Eswatini, Lesotho, Südafrika
WAT West-Afrikanische Zeit +1 3600 Algerien, Angola, Benin, DR Kongo (Kinshasa), Gabun, Kamerun, Marokko, Niger, Nigeria, Rep. Kongo, Tschad, Tunesien, Westsahara, ZAR, Äquatorialguinea

Asien

Kürzel Bezeichnung UTC offset_seconds Länder / Regionen
AFT Afghanistan Zeit +4:30 16200 Afghanistan
ALMT Alma-Ata Zeit +5 18000 Kasachstan (Almaty, Qostanay)
ANAT Anadyr Zeit +12 43200 Russland (Anadyr)
AQTT Aqtobe Zeit +5 18000 Kasachstan (Aqtöbe)
AST Arabia Standardzeit +3 10800 Bahrain, Irak, Jemen, Jordanien, Katar, Kuwait, Saudi-Arabien, Syrien
AMT Armenische Zeit +4 14400 Armenien
AZT Aserbaidschan Zeit +4 14400 Aserbaidschan
BST Bangladesch Standardzeit +6 21600 Bangladesch
BTT Bhutan Zeit +6 21600 Bhutan
BNT Brunei Darussalam Zeit +8 28800 Brunei
CIT Zentral-Indonesische Zeit +8 28800 Indonesien (Sulawesi)
CST China Standardzeit +8 28800 China (Shanghai), Macau, Taiwan
TLT Ost-Timor Zeit +9 32400 Osttimor
EIT Ost-Indonesische Zeit +9 32400 Indonesien (Papua)
GET Georgia Zeit +4 14400 Georgien
GST Golf Standardzeit +4 14400 Oman, Vereinigte Arabische Emirate
HKT Hong Kong Zeit +8 28800 Hongkong
HOVT Hovd Zeit +7 25200 Mongolei (Hovd)
IST Indische Standardzeit +5:30 19800 Indien
ICT Indochina Zeit +7 25200 Kambodscha, Laos, Thailand, Vietnam
IRST Iranische Standardzeit +3:30 12600 Iran
IRKT Irkutsk Zeit +8 28800 Russland (Irkutsk)
IST Israelische Standardzeit +2 7200 Israel
JST Japanische Standardzeit +9 32400 Japan
PETT Kamchatka Zeit +12 43200 Russland (Kamchatka)
KST Koreanische Standardzeit +9 32400 Nordkorea, Südkorea
KRAT Krasnoyarsk Zeit +7 25200 Russland (Krasnoyarsk)
KGT Kirgisische Zeit +6 21600 Kirgisistan
MYT Malayische Zeit +8 28800 Malaysia
MMT Myanmar Zeit +6:30 23400 Myanmar
NPT Nepal Zeit +5:45 20700 Nepal
NOVT Novosibirsk Zeit +7 25200 Russland (Nowosibirsk)
OMST Omsk Standardzeit +6 21600 Russland (Omsk)
ORAT Oral Zeit +5 18000 Kasachstan (Oral)
PKT Pakistanische Standardzeit +5 18000 Pakistan
PHT Philippine Zeit +8 28800 Philippinen
QYZT Qyzylorda Zeit +5 18000 Kasachstan (Qyzylorda)
SAKT Sakhalin Zeit +11 39600 Russland (Sakhalin)
SGT Singapur Zeit +8 28800 Singapur
SRET Srednekolymsk Zeit +11 39600 Russland (Srednekolymsk)
SLT Sri Lanka Zeit +5:30 19800 Sri Lanka
TJT Tadschikistan Zeit +5 18000 Tadschikistan
TMT Turkmenistan Zeit +5 18000 Turkmenistan
ULAT Ulaanbaatar Zeit +8 28800 Mongolei (Ulaanbaatar)
UZT Usbekistan Zeit +5 18000 Usbekistan
VLAT Vladivostok Zeit +10 36000 Russland (Wladiwostok)
WIT West-Indonesische Zeit +7 25200 Indonesien (Sumatra, Java)
XJT Xinjiang Zeit +6 21600 China (Urumqi)
YAKT Yakutsk Zeit +9 32400 Russland (Yakutsk)
YEKT Yekaterinburg Zeit +5 18000 Russland (Jekaterinburg)

Australien

Kürzel Bezeichnung UTC offset_seconds Länder / Regionen
ACST Zentral-Australische Zeit +9:30 34200 Australien (Süd-Australien, Broken Hill, Northern Territory)
ACWST Zentral-West-Australische Standardzeit +8:45 31500 Australien (Eucla)
AEST Ost-Australische Standardzeit +10 36000 Australien (Queensland, Victoria, New South Wales), Antarktis (Macquarie)
AWST West-Australische Standardzeit +8 28800 Australien (West-Australien)
LHST Lord Howe Standardzeit +10:30 37800 Australien (Lord-Howe-Insel)

Indischer Ozean

Kürzel Bezeichnung UTC offset_seconds Länder / Regionen
CXT Christmas Island Zeit +7 25200 Weihnachtsinsel
CCT Cocos Islands Zeit +6:30 23400 Kokosinseln
TFT Französische Antarktis Zeit +5 18000 Französische Süd- und Antarktisgebiete, Heard und McDonald
ICT Indische Chagos Zeit +6 21600 Britisches Territorium im Indischen Ozean
MVT Malediven Zeit +5 18000 Malediven
MUT Mauritius Zeit +4 14400 Mauritius
RET Reunion Zeit +4 14400 Réunion
SCT Seychellen Zeit +4 14400 Seychellen

Pazifischer Ozean

Kürzel Bezeichnung UTC offset_seconds Länder / Regionen
CHST Chamorro Standardzeit +10 36000 Guam, Nördliche Marianen
CHAST Chatham Island Standardzeit +12:45 45900 Neuseeland (Chatham)
CHUT Chuuk Zeit +10 36000 Mikronesien (Chuuk)
CKT Cook Island Zeit -10 -36000 Cookinseln
EAST Osterinsel Standardzeit -6 -21600 Chile (Osterinsel)
FJT Fiji Zeit +12 43200 Fidschi
GALT Galapagos Zeit -6 -21600 Ecuador (Galapagos)
GAMT Gambier Zeit -9 -32400 Französisch-Polynesien (Gambier)
GILT Gilbert Island Zeit +12 43200 Kiribati (Tarawa)
KOST Kosrae Zeit +11 39600 Mikronesien (Kosrae)
LINT Line Islands Zeit +14 50400 Kiribati (Kiritimati)
MART Marquesas Zeit -9:30 -34200 Französisch-Polynesien (Marquesas)
MHT Marshall Islands Zeit +12 43200 Marshallinseln
NRT Nauru Zeit +12 43200 Nauru
NCT Neukaledonische Zeit +11 39600 Neukaledonien
NZST Neuseeländische Standardzeit +12 43200 Neuseeland (Auckland), Antarktis (McMurdo)
NUT Niue Zeit -11 -39600 Niue
NFT Norfolk Zeit +11 39600 Norfolkinsel
PWT Palau Zeit +9 32400 Palau
PGT Papua-Neuguinea Zeit +10 36000 Papua-Neuguinea
PHOT Phoenix Island Zeit +13 46800 Kiribati (Kanton)
PST Pitcairn Standardzeit -8 -28800 Pitcairninseln
PONT Pohnpei Standardzeit +11 39600 Mikronesien (Pohnpei)
SST Samoa Standardzeit -11 -39600 Amerikanisch-Samoa, USA (Midway)
SBT Salomonen Zeit +11 39600 Salomonen
TAHT Tahiti Zeit -10 -36000 Französisch-Polynesien (Tahiti)
TKT Tokelau Zeit +13 46800 Tokelau
TOT Tonga Zeit +13 46800 Tonga
TVT Tuvalu Zeit +12 43200 Tuvalu
VUT Vanuatu Zeit +11 39600 Vanuatu
WAKT Wake Island Zeit +12 43200 USA (Wake-Insel)
WFT Wallis und Futuna Zeit +12 43200 Wallis und Futuna
WST West Samoa Zeit +13 46800 Samoa

Atlantischer Ozean

Kürzel Bezeichnung UTC offset_seconds Länder / Regionen
AZOT Azoren Zeit -1 -3600 Portugal (Azoren)
CVT Kap Verde Zeit -1 -3600 Kap Verde
FKT Falkland Zeit -3 -10800 Falklandinseln
GST South Georgia Zeit -2 -7200 Südgeorgien und Südliche Sandwichinseln

Antarktis

Kürzel Bezeichnung UTC offset_seconds Länder / Regionen
CAST Casey Zeit +8 28800 Antarktis (Casey)
DAVT Davis Zeit +7 25200 Antarktis (Davis)
DDUT Dumont-d'Urville Zeit +10 36000 Antarktis (Dumont d'Urville)
MAWT Mawson Zeit +5 18000 Antarktis (Mawson)
SYOT Syowa Zeit +3 10800 Antarktis (Syowa)
VOST Vostok Zeit +5 18000 Antarktis (Wostok)

⚠ = Kürzel doppelt belegt, siehe oben.


Zonen gesamt: 117, von SST/NUT bei −11:00 bis LINT bei +14:00. Zwölf davon haben keinen vollstündigen Versatz: ACST, ACWST, AFT, CCT, CHAST, IRST, IST (Indien), LHST, MART, MMT, NPT, SLT.

Letzte Aktualisierung: 2026-08-18 — ZoneByCode, ZoneMake, ZoneCodeKnown, die 33 TZ_OFF_*-Konstanten, die elf Sommerzeit-Funktionen und die eindeutig benannten Zonen zu den drei doppelten Kürzeln ergänzt (#1600); der frühere Selbstbau-Helfer entfällt. Beispiel mit lyxc 1.1.2E gegen die Repo-Fassung der Standardbibliothek übersetzt und ausgeführt.