Megosztás a következőn keresztül:


Dátumok, időpontok és időzónák

A .NET dátumokat, időpontokat és időzónákat ábrázoló típusokat biztosít. Ez a cikk ezeket a típusokat ismerteti.

Az alapszintű DateTime struktúrán kívül a .NET a következő osztályokat is biztosítja, amelyek támogatják az időzónák használatát:

  • TimeZoneInfo

    Ezzel az osztálysal bármilyen, a rendszeren előre definiált időzónával dolgozhat, új időzónákat hozhat létre, és egyszerűen konvertálhat dátumokat és időpontokat az egyik időzónából a másikba. Új fejlesztéshez használja a TimeZoneInfo osztályt a TimeZone osztály helyett.

  • DateTimeOffset

    Ezzel a struktúrával olyan dátumokkal és időpontokkal dolgozhat, amelyek eltolása (vagy eltérése) ismert az UTC-től. A DateTimeOffset struktúra egyesíti a dátum- és időértéket az idő UTC-től való eltolódásával. Az UTC-hez való viszonya miatt egy egyedi dátum- és időérték egyértelműen azonosít egy időpontot. Így egy DateTimeOffset érték hordozhatóbbá válik az egyik számítógépről a másikra, mint egy DateTime érték.

A következő osztályok támogatást nyújtanak az idővel való munkához:

  • TimeSpan

    Ez a struktúra egy időintervallumot jelöl, például az eltelt időt vagy a két dátum közötti különbséget.

  • TimeOnly

    Ezzel a struktúrával dátum nélküli időt jelölhet. Az idő egy nem meghatározott nap óráinak, perceinek és másodperceinek felel meg. TimeOnly tartománya 00:00:00.0000000 és 23:59:59.9999999között van. Ezzel a típussal helyettesítheti DateTime és TimeSpan típusokat a kódban, amikor ezeket a típusokat használta egy idő megjelenítéséhez. További információ: DateOnly és TimeOnly struktúrák használata.

    Fontos

    TimeOnly nem érhető el a .NET-keretrendszerhez.

  • TimeProvider

    Ez egy alaposztály, amely az idő absztrakcióját biztosítja. Az aktuális idő ellenőrzésének gyakori módja a DateTime.UtcNow vagy DateTimeOffset.UtcNowhasználata. Ezek a típusok azonban nem biztosítanak semmilyen vezérlést a "most" nevűnek ítélt érték felett. Miért akarod ezt szabályozni? Tesztelhetőség. Tegyük fel például, hogy egy eseménykövető alkalmazást ír, amely 1 nappal az esemény előtt emlékeztetőket biztosít. Az alkalmazás logikája az, hogy óránként ellenőrizze az esemény időpontját, és riasztást küld a felhasználónak, ha az 24 órával az esemény előtt van. Az alkalmazás tesztjeinek megírása során saját típust kell megadnia, amely DateTimeOffset.UtcNow-t burkol a logika teszteléséhez, de a .NET most már biztosítja Önnek ezt az absztrakt osztályt.

    További információért lásd: Mi az a TimeProvider.

    A TimeProvider típus szerepel a .NET-ben.

    A .NET-keretrendszer és a .NET Standard esetében a TimeProvider a Microsoft.Bcl.TimeProvider NuGet-csomagbiztosítja.

A következő osztályok támogatják a dátumokkal való munkát:

  • DateOnly

    Ezt a struktúrát akkor használja, ha olyan értékkel dolgozik, amely csak egy dátumot jelöl. A dátum az egész napot jelöli a nap elejétől a végéig. DateOnly tartománya 0001-01-01 és 9999-12-31között van. Ez a típus pedig a hónap, a nap és az év kombinációt jelöli meghatározott idő nélkül. Ha korábban egy DateTime típust használt a kódban egy olyan dátum megjelenítéséhez, amely figyelmen kívül hagyta az időt, használja ezt a típust a helyén. További információ: DateOnly és TimeOnly struktúrák használata.

    Fontos

    DateOnly nem érhető el a .NET-keretrendszerhez.

A következő szakasz azokat az információkat ismerteti, amelyek az időzónákkal való munkához, valamint az időzóna-ismeretű alkalmazások létrehozásához szükségesek, amelyek dátumokat és időpontokat alakíthatnak át az időzónákból a másikba.

Ebben a szakaszban

időzóna áttekintése
Ismerteti az időzóna-alapú alkalmazások létrehozásához kapcsolódó terminológiát, fogalmakat és problémákat.

Választás a DateTime, a DateTimeOffset, a TimeSpan és a TimeZoneInfo között
A DateTime, a DateTimeOffsetés a TimeZoneInfo típus használatát ismerteti a dátum- és időadatok használatakor.

Helyi rendszeren definiált időzónák megkeresése
A helyi rendszeren található időzónák számbavételét ismerteti.

Útmutató: A számítógépen található időzónák számbavétele
Példákat tartalmaz a számítógép beállításjegyzékében meghatározott időzónák számbavételére, és lehetővé teszi, hogy a felhasználók egy előre meghatározott időzónát válasszanak ki egy listából.

Útmutató: Az előre definiált UTC- és helyi időzóna-objektumok elérése
A koordinált egyetemes idő és a helyi időzóna elérését ismerteti.

Útmutató: TimeZoneInfo objektum példányosítása
Azt ismerteti, hogyan lehet példányosítani egy TimeZoneInfo objektumot a helyi rendszerregisztrációs adatbázisból.

DateTimeOffset objektum példányosítása
A DateTimeOffset objektumok példányosításának módjait, valamint a DateTime értékek DateTimeOffset értékké alakításának módjait ismerteti.

Útmutató: Időzónák létrehozása beállítási szabályok nélkül
Ismerteti, hogyan hozhat létre olyan egyéni időzónát, amely nem támogatja a nyári időszámításra és a nyári időszámításra való áttérést.

Útmutató: Időzónák létrehozása beállítási szabályokkal
Bemutatja, hogyan hozhat létre olyan egyéni időzónát, amely támogatja az áttéréseket a nyári időszámítás kezdetére és végére.

Időzónák mentése és visszaállítása
Ismerteti TimeZoneInfo időzóna-adatok szerializálásának és deszerializálásának támogatását, és bemutatja azokat a forgatókönyveket, amelyekben ezek a funkciók használhatók.

Hogyan kell: időzónákat menteni egy beágyazott erőforrásba
Ismerteti, hogyan hozhat létre egyéni időzónát, és hogyan mentheti az adatait egy erőforrásfájlba.

Útmutató: Időzónák visszaállítása beágyazott erőforrásból
A beágyazott erőforrásfájlba mentett egyéni időzónák példányosítását ismerteti.

Aritmetikai műveletek végrehajtása dátumokkal és időpontokkal
Ismerteti a DateTime és DateTimeOffset értékek hozzáadásával, kivonásával és összehasonlításával kapcsolatos problémákat.

Útmutató: Időzónák használata dátum- és időritmetikai
Az időzóna beállítási szabályait tükröző dátum- és időritmetika elvégzésének módját ismerteti.

Átalakítás a "DateTime" és a "DateTimeOffset" között
A DateTime és DateTimeOffset értékek közötti konvertálást ismerteti.

Időzónák közötti időszámítás
Leírja, hogyan lehet átváltani az időpontokat egyik időzónáról a másikra.

Útmutató: Kétértelmű időpontok feloldása
Azt ismerteti, hogyan oldhat fel kétértelmű időt úgy, hogy megfelelteti az időzóna alapidejének.

Útmutató: A felhasználók megoldhatják a kétértelmű időket
Azt ismerteti, hogyan határozhatja meg a felhasználó a nem egyértelmű helyi idő és az összehangolt egyetemes idő közötti leképezést.

Utalás

System.TimeZoneInfo