====== 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.