====== 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**.
→ [[lyx_-_programmiersprache:guides:zeit-und-datum|Guide Zeit & Datum]] · [[lyx_-_programmiersprache:units:time|std.time]] · [[lyx_-_programmiersprache:units:datetime|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.** ''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 ([[https://github.com/SEOLizer/LyX-Compiler/issues/1600|#1600]]) steckt in der Repo-Fassung der Standardbibliothek; die ausgelieferte Fassung unter ''/usr/include/lyx/units'' hinkt hinterher ([[https://github.com/SEOLizer/LyX-Compiler/issues/1578|#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 ([[https://github.com/SEOLizer/LyX-Compiler/issues/1600|#1600]]); der frühere Selbstbau-Helfer entfällt. Beispiel mit ''lyxc 1.1.2E'' gegen die Repo-Fassung der Standardbibliothek übersetzt und ausgeführt.