Delen via


Overzicht van tijdzone

De TimeZoneInfo klasse vereenvoudigt het maken van tijdzonebewuste toepassingen. De TimeZone klasse ondersteunt het werken met de lokale tijdzone en Coordinated Universal Time (UTC). De TimeZoneInfo klasse ondersteunt beide zones en elke tijdzone over welke informatie vooraf is gedefinieerd in het register. U kunt ook TimeZoneInfo aangepaste tijdzones definiëren waarover het systeem geen informatie heeft.

Essentiële tijdzones

Een tijdzone is een geografische regio waarin dezelfde tijd wordt gebruikt. Meestal, maar niet altijd, aangrenzende tijdzones liggen één uur uit elkaar. De tijd in een van de tijdzones ter wereld kan worden uitgedrukt als een verschuiving van Coordinated Universal Time (UTC).

Veel van de tijdzones ter wereld ondersteunen zomertijd. Zomertijd probeert de daglichturen te maximaliseren door de tijd vooruit te gaan met één uur in de lente of vroege zomer, en terug te keren naar de normale (of standaard) tijd in de late zomer of herfst. Deze wijzigingen in en van de standaardtijd worden aanpassingsregels genoemd.

De overgang naar en van zomertijd in een bepaalde tijdzone kan worden gedefinieerd door een vaste of zwevende aanpassingsregel. Met een vaste aanpassingsregel wordt een bepaalde datum ingesteld waarop de overgang naar of van zomertijd elk jaar plaatsvindt. Een overgang van zomertijd naar standaardtijd die elk jaar op 25 oktober plaatsvindt, volgt bijvoorbeeld een vaste aanpassingsregel. Veel gebruikelijker zijn zwevende aanpassingsregels, die een bepaalde dag van een bepaalde week van een bepaalde maand voor de overgang naar of van zomertijd instellen. Een overgang van standaardtijd naar zomertijd die op de derde zondag van maart plaatsvindt, volgt bijvoorbeeld een zwevende aanpassingsregel.

Voor tijdzones die aanpassingsregels ondersteunen, creëert de overgang naar en van zomertijd twee soorten afwijkende tijden: ongeldige tijden en dubbelzinnige tijden. Een ongeldige tijd is een niet-bestaande tijd die is gemaakt door de overgang van standaardtijd tot zomertijd. Als deze overgang bijvoorbeeld plaatsvindt op een bepaalde dag om 2:00 uur en de tijd verandert in 3:00 uur, is elke tijdsinterval tussen 2:00 en 2:59:59 uur ongeldig. Een dubbelzinnige tijd is een tijd die kan worden toegewezen aan twee verschillende tijden in één tijdzone. Het wordt gemaakt door de overgang van zomertijd tot standaardtijd. Als deze overgang bijvoorbeeld plaatsvindt op een bepaalde dag om 2:00 uur en de tijd verandert in 1:00 uur, kan elke tijdsinterval tussen 1:00 en 1:59:59 uur worden geïnterpreteerd als een standaardtijd of een zomertijd.

Terminologie van tijdzone

In de volgende tabel worden termen gedefinieerd die vaak worden gebruikt bij het werken met tijdzones en het ontwikkelen van tijdzonebewuste toepassingen.

Term Definitie
Regel voor aanpassing Een regel die definieert wanneer de overgang van standaardtijd naar zomertijd en terug van zomertijd naar standaardtijd plaatsvindt. Elke aanpassingsregel heeft een begin- en einddatum die bepaalt wanneer de regel is ingesteld (de aanpassingsregel is bijvoorbeeld van 1 januari 1986 tot 31 december 2006), een delta (de tijdsduur waarmee de standaardtijd verandert als gevolg van de toepassing van de aanpassingsregel) en informatie over de specifieke datum en tijd die de overgangen moeten plaatsvinden tijdens de aanpassingsperiode. Overgangen kunnen een vaste regel of een zwevende regel volgen.
Dubbelzinnige tijd Een tijd die kan worden toegewezen aan twee verschillende tijden in één tijdzone. Het gebeurt wanneer de kloktijd weer in de tijd wordt aangepast, zoals tijdens de overgang van de zomertijd van een tijdzone naar de standaardtijd. Als deze overgang bijvoorbeeld plaatsvindt op een bepaalde dag om 2:00 uur en de tijd verandert in 1:00 uur, kan elke tijdsinterval tussen 1:00 en 1:59:59 uur worden geïnterpreteerd als een standaardtijd of een zomertijd.
Vaste regel Een aanpassingsregel waarmee een bepaalde datum voor de overgang naar of van zomertijd wordt ingesteld. Een overgang van zomertijd naar standaardtijd die elk jaar op 25 oktober plaatsvindt, volgt bijvoorbeeld een vaste aanpassingsregel.
Zwevende regel Een aanpassingsregel die een bepaalde dag van een bepaalde week van een bepaalde maand instelt voor de overgang naar of van zomertijd. Een overgang van standaardtijd naar zomertijd die op de derde zondag van maart plaatsvindt, volgt bijvoorbeeld een zwevende aanpassingsregel.
Ongeldige tijd Een niet-bestaande tijd die een artefact is van de overgang van standaardtijd naar zomertijd. Het gebeurt wanneer de kloktijd vooruit wordt aangepast in de tijd, zoals tijdens de overgang van de standaardtijd van een tijdzone naar de zomertijd. Als deze overgang bijvoorbeeld plaatsvindt op een bepaalde dag om 2:00 uur en de tijd verandert in 3:00 uur, is elke tijdsinterval tussen 2:00 en 2:59:59 uur ongeldig.
Overgangstijd Informatie over een specifieke tijdswijziging, zoals de wijziging van zomertijd tot standaardtijd of omgekeerd, in een bepaalde tijdzone.

Tijdzones en de klasse TimeZoneInfo

In .NET vertegenwoordigt een TimeZoneInfo object een tijdzone. De TimeZoneInfo klasse bevat een GetAdjustmentRules methode die een matrix met TimeZoneInfo.AdjustmentRule objecten retourneert. Elk element van deze matrix biedt informatie over de overgang naar en van zomertijd voor een bepaalde periode. (Voor tijdzones die geen zomertijd ondersteunen, retourneert de methode een lege matrix.) Elk TimeZoneInfo.AdjustmentRule object heeft een DaylightTransitionStart en een DaylightTransitionEnd eigenschap die de specifieke datum en tijd van de overgang naar en van zomertijd definieert. De IsFixedDateRule eigenschap geeft aan of deze overgang vast of zwevend is.

.NET is afhankelijk van tijdzone-informatie die wordt verstrekt door het Windows-besturingssysteem en is opgeslagen in het register. Vanwege het aantal tijdzones van de aarde worden niet alle bestaande tijdzones weergegeven in het register. Omdat het register een dynamische structuur is, kunnen vooraf gedefinieerde tijdzones worden toegevoegd aan of verwijderd uit het register. Ten slotte bevat het register niet noodzakelijkerwijs historische tijdzonegegevens. In Windows XP bevat het register bijvoorbeeld gegevens over slechts één set tijdzone-aanpassingen. Windows Vista ondersteunt dynamische tijdzonegegevens, wat betekent dat één tijdzone meerdere aanpassingsregels kan hebben die van toepassing zijn op specifieke intervallen van jaren. De meeste tijdzones die zijn gedefinieerd in het Windows Vista-register en ondersteuning bieden voor zomertijd hebben echter slechts één of twee vooraf gedefinieerde aanpassingsregels.

De afhankelijkheid van de TimeZoneInfo klasse in het register betekent dat een tijdzonebewuste toepassing niet zeker kan zijn dat een bepaalde tijdzone in het register is gedefinieerd. Als gevolg hiervan moet de poging om een specifieke tijdzone te instantiëren (anders dan de lokale tijdzone of de tijdzone die UTC vertegenwoordigt) uitzonderingsafhandeling gebruiken. Er moet ook een methode worden opgegeven om de toepassing door te laten gaan als een vereist TimeZoneInfo object niet kan worden geïnstantieerd vanuit het register.

Voor het afhandelen van de afwezigheid van een vereiste tijdzone bevat de TimeZoneInfo klasse een CreateCustomTimeZone methode die u kunt gebruiken om aangepaste tijdzones te maken die niet in het register worden gevonden. Zie Procedures voor het maken van een aangepaste tijdzone voor meer informatie over het maken van een aangepaste tijdzone : Tijdzones maken zonder aanpassingsregels en Procedures: Tijdzones maken met aanpassingsregels. Daarnaast kunt u de ToSerializedString methode gebruiken om een zojuist gemaakte tijdzone te converteren naar een tekenreeks en deze op te slaan in een gegevensarchief (zoals een database, een tekstbestand, het register of een toepassingsresource). Vervolgens kunt u de FromSerializedString methode gebruiken om deze tekenreeks weer te converteren naar een TimeZoneInfo object. Zie Voor meer informatie : Tijdzones besparen op een ingesloten resource en procedures: tijdzones herstellen vanuit een ingesloten resource.

Omdat elke tijdzone wordt gekenmerkt door een basisverschil van UTC, evenals door een offset van UTC die alle bestaande aanpassingsregels weerspiegelt, kan een tijd in één tijdzone eenvoudig worden geconverteerd naar de tijd in een andere tijdzone. Voor dit doel bevat het TimeZoneInfo object verschillende conversiemethoden, waaronder:

  • ConvertTimeFromUtc, waarmee UTC wordt geconverteerd naar de tijd in een aangewezen tijdzone.

  • ConvertTimeToUtc, waarmee de tijd in een aangewezen tijdzone wordt geconverteerd naar UTC.

  • ConvertTime, waarmee de tijd in één aangewezen tijdzone wordt geconverteerd naar de tijd in een andere aangewezen tijdzone.

  • ConvertTimeBySystemTimeZoneId, waarbij tijdzone-id's (in plaats van TimeZoneInfo objecten) worden gebruikt als parameters om de tijd in één aangewezen tijdzone te converteren naar de tijd in een andere aangewezen tijdzone.

Zie Tijd tussen tijdzones converteren voor meer informatie over het converteren van tijden tussen tijdzones.

Zie ook