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_0100 … TZ_OFF_PLUS_1400, TZ_OFF_PLUS_0545, TZ_OFF_PLUS_1245, TZ_OFF_MINUS_0100 … TZ_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.ZoneByCodeliefert dannname = 0undoffset_seconds = 0— das ist von UTC nicht zu unterscheiden. Wer geprüft haben will, ob es die Zone gibt, fragt vorherZoneCodeKnown.
Diese Erweiterung (#1600) steckt in der Repo-Fassung der Standardbibliothek; die ausgelieferte Fassung unter/usr/include/lyx/unitshinkt hinterher (#1578). Beiundefined 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.
