Lezen in het Engels

Delen via


Datums, tijden en tijdzones

.NET biedt typen die datums, tijden en tijdzones vertegenwoordigen. In dit artikel worden deze typen beschreven.

Naast de basisstructuur DateTime biedt .NET de volgende klassen die ondersteuning bieden voor het werken met tijdzones:

  • TimeZoneInfo

    Gebruik deze klasse om te werken met een tijdzone die vooraf is gedefinieerd op een systeem, om nieuwe tijdzones te maken en om eenvoudig datums en tijden van de ene tijdzone naar de andere te converteren. Gebruik voor nieuwe ontwikkeling de TimeZoneInfo klasse in plaats van de klasse TimeZone.

  • DateTimeOffset

    Gebruik deze structuur om te werken met datums en tijden waarvan de offset (of het verschil) van UTC bekend is. De DateTimeOffset structuur combineert een datum- en tijdwaarde met de verschuiving van die tijd ten opzichte van UTC. Vanwege de relatie met UTC identificeert een afzonderlijke datum- en tijdwaarde ondubbelzinnig één bepaald tijdstip. Dit maakt een DateTimeOffset waarde draagbaarer van de ene computer naar de andere dan een DateTime waarde.

De volgende klassen ter ondersteuning van het werken met tijd:

  • TimeSpan

    Gebruik deze structuur om een tijdsinterval weer te geven, zoals een verstreken hoeveelheid tijd of het verschil tussen twee datums.

  • TimeOnly

    Gebruik deze structuur om een tijd zonder datum weer te geven. De tijd vertegenwoordigt de uren, minuten en seconden van een niet-specifieke dag. TimeOnly heeft een reeks 00:00:00.0000000 tot 23:59:59.9999999. Dit type kan worden gebruikt om DateTime en TimeSpan typen in uw code te vervangen wanneer u deze typen hebt gebruikt om een tijd aan te geven. Zie De structuren DateOnly en TimeOnly gebruikenvoor meer informatie.

    Belangrijk

    TimeOnly is niet beschikbaar voor .NET Framework.

  • TimeProvider

    Dit is een basisklasse die een abstractie van tijd biedt. Een veelgebruikte manier om de huidige tijd te controleren, is door gebruik te maken van DateTime.UtcNow of DateTimeOffset.UtcNow. Deze typen bieden echter geen controle over wat 'nu' wordt beschouwd. Waarom zou je dat willen regelen? Testbaarheid. Denk bijvoorbeeld aan het schrijven van een toepassing voor het bijhouden van gebeurtenissen die 1 dag vóór de gebeurtenis herinneringen biedt. De logica van de app is om de gebeurtenis elk uur te controleren en de gebruiker te waarschuwen zodra deze 24 uur voor de gebeurtenis plaatsvindt. Terwijl u uw tests voor de app schrijft, geeft u uw eigen type op dat DateTimeOffset.UtcNow verpakt om deze logica te testen, maar nu biedt .NET deze abstractieklasse voor u.

    Zie Wat is TimeProvidervoor meer informatie.

    Het type TimeProvider is opgenomen in .NET.

    Voor .NET Framework en .NET Standard wordt TimeProvider geleverd door het Microsoft.Bcl.TimeProvider NuGet-pakket.

De volgende klassen ter ondersteuning van het werken met datums:

  • DateOnly

    Gebruik deze structuur wanneer u werkt met een waarde die alleen een datum vertegenwoordigt. De datum vertegenwoordigt de hele dag, vanaf het begin van de dag tot het einde. DateOnly heeft een reeks 0001-01-01 tot en met 9999-12-31. En dit type vertegenwoordigt de combinatie van maand, dag en jaar zonder een specifieke tijd. Als u eerder een DateTime in uw code hebt gebruikt om een datum weer te geven die de tijd negeerde, gebruikt u dit type op zijn plaats. Zie De structuren DateOnly en TimeOnly gebruikenvoor meer informatie.

    Belangrijk

    DateOnly is niet beschikbaar voor .NET Framework.

De volgende sectie bevat de informatie die u nodig hebt om te werken met tijdzones en om tijdzonebewuste toepassingen te maken waarmee datums en tijden van de ene tijdzone naar de andere kunnen worden geconverteerd.

In deze sectie

overzicht van tijdzone
Hierin worden de terminologie, concepten en problemen besproken die betrekking hebben op het maken van tijdzonebewuste toepassingen.

Kiezen tussen Datum/tijd, DateTimeOffset, TimeSpan en TimeZoneInfo
Hier wordt besproken wanneer u de DateTime, DateTimeOffseten TimeZoneInfo typen gebruikt bij het werken met datum- en tijdgegevens.

De tijdzones zoeken die zijn gedefinieerd op een lokaal systeem
Hierin wordt beschreven hoe u de tijdzones opsommen die zijn gevonden op een lokaal systeem.

Procedure: Tijdzones opsommen die aanwezig zijn op een computer
Hier vindt u voorbeelden van het inventariseren van de tijdzones die zijn gedefinieerd in het register van een computer en waarmee gebruikers een vooraf gedefinieerde tijdzone in een lijst kunnen selecteren.

Procedure: Toegang krijgen tot de vooraf gedefinieerde UTC- en lokale tijdzoneobjecten
Hierin wordt beschreven hoe u toegang hebt tot Coordinated Universal Time en de lokale tijdzone.

Procedure: een TimeZoneInfo-object instantiëren
Hierin wordt beschreven hoe u een TimeZoneInfo-object maakt vanuit het lokale systeemregister.

een DateTimeOffset-object instantiëren
Bespreekt de manieren waarop een DateTimeOffset object kan worden geïnstantieerd en de manieren waarop een DateTime waarde kan worden geconverteerd naar een DateTimeOffset waarde.

Procedure: Tijdzones maken zonder regels voor aanpassing
Hierin wordt beschreven hoe u een aangepaste tijdzone maakt die de overgang naar en van zomertijd niet ondersteunt.

Procedure: Tijdzones maken met aanpassingsregels
Hierin wordt beschreven hoe u een aangepaste tijdzone maakt die een of meer overgangen naar en van zomertijd ondersteunt.

tijdzones opslaan en herstellen
Beschrijft TimeZoneInfo ondersteuning voor serialisatie en deserialisatie van tijdzonegegevens en illustreert enkele van de scenario's waarin deze functies kunnen worden gebruikt.

Hoe tijdzones opslaan in een ingebedde resource
Hierin wordt beschreven hoe u een aangepaste tijdzone maakt en de bijbehorende gegevens opslaat in een resourcebestand.

Instructies: Tijdzones herstellen vanuit een ingesloten resource
Hierin wordt beschreven hoe u aangepaste tijdzones instantieert die zijn opgeslagen in een ingesloten resourcebestand.

rekenkundige bewerkingen uitvoeren met datums en tijden
Hierin worden de problemen besproken die betrokken zijn bij het toevoegen, aftrekken en vergelijken van DateTime en DateTimeOffset waarden.

Instructies: Tijdzones gebruiken in datum- en tijdberekeningen
Hier wordt beschreven hoe u rekenkundige datum- en tijdberekeningen uitvoert die de aanpassingsregels van een tijdzone weerspiegelen.

Omzetten tussen Datum en Tijd en DateTimeOffset
Hierin wordt beschreven hoe u tussen DateTime en DateTimeOffset waarden converteert.

Tijden tussen tijdzones omzetten
Beschrijft hoe u tijden van de ene tijdzone naar een andere converteert.

Hoe te: Dubbelzinnige Tijdstippen Oplossen
Beschrijft hoe u een dubbelzinnige tijd kunt oplossen door deze toe te koppelen aan de standaardtijd van de tijdzone.

Procedure: gebruikers niet-eenduidige tijden laten oplossen
Beschrijft hoe een gebruiker de toewijzing kan bepalen tussen een onduidelijke lokale tijd en Gecoördineerde Universele Tijd.

Referentie

System.TimeZoneInfo