Školení
Modul
Výběr správného datového typu v kódu jazyka C# - Training
Zvolte pro svůj kód správný datový typ z několika základních typů používaných v jazyce C#.
Tento prohlížeč se už nepodporuje.
Upgradujte na Microsoft Edge, abyste mohli využívat nejnovější funkce, aktualizace zabezpečení a technickou podporu.
.NET poskytuje typy, které představují data, časy a časová pásma. Tento článek popisuje tyto typy.
Kromě základní struktury DateTime poskytuje .NET následující třídy, které podporují práci s časovými pásmy:
Pomocí této třídy můžete pracovat s libovolným časovým pásmem, které je předdefinované v systému, vytvářet nová časová pásma a snadno převádět data a časy z jednoho časového pásma do jiného. Pro nový vývoj použijte místo třídy TimeZone třídu TimeZoneInfo.
Tato struktura slouží k práci s daty a časy, jejichž posun (nebo rozdíl) od utc je známý. Struktura DateTimeOffset kombinuje hodnotu data a času s posunem tohoto času od času UTC. Díky svému vztahu k UTC hodnota data a času jednoznačně určuje jeden bod v čase. Díky tomu je hodnota DateTimeOffset přenosnější z jednoho počítače do jiného než hodnota DateTime.
Následující třídy pro podporu práce s časem:
Tato struktura slouží k znázornění časového intervalu, například uplynulého časového intervalu nebo rozdílu mezi dvěma daty.
Pomocí této struktury můžete znázorňovat čas bez data. Čas představuje hodiny, minuty a sekundy neurčitého dne.
TimeOnly
má rozsah od 00:00:00.0000000
do 23:59:59.9999999
. Tento typ lze použít k nahrazení DateTime
a TimeSpan
typů v kódu, když jste tyto typy použili k reprezentaci času. Další informace naleznete v tématu Jak používat struktury DateOnly a TimeOnly.
Důležité
TimeOnly není k dispozici pro rozhraní .NET Framework.
Toto je základní třída, která poskytuje abstrakci času. Běžným způsobem kontroly aktuálního času je použití DateTime.UtcNow
nebo DateTimeOffset.UtcNow
. Tyto typy ale neposkytují žádnou kontrolu nad tím, co se považuje za "nyní". Proč byste to chtěli ovládat? Testovatelnost. Představte si například, že píšete aplikaci pro sledování událostí, která poskytuje připomenutí 1 den před událostí. Logika aplikace je kontrolovat čas události každou hodinu a upozornit uživatele, jakmile bude 24 hodin před událostí. Při psaní testů pro aplikaci byste zadali vlastní typ, který zahrnuje DateTimeOffset.UtcNow
k otestování této logiky, ale nyní .NET nyní za vás poskytuje tuto třídu abstrakce.
Další informace naleznete v tématu What is TimeProvider.
Typ TimeProvider
je součástí .NET.
Pro rozhraní .NET Framework a .NET Standard poskytuje TimeProvider
balíček Microsoft.Bcl.TimeProvider NuGet.
Následující třídy pro podporu práce s kalendářními daty:
Tuto strukturu použijte při práci s hodnotou, která představuje pouze datum. Datum představuje celý den od začátku dne do konce.
DateOnly
má rozsah od 0001-01-01
do 9999-12-31
. A tento typ představuje kombinaci měsíce, dne a roku bez určitého času. Pokud jste dříve použili DateTime
typ v kódu k vyjádření data, které ignorovalo čas, použijte tento typ na svém místě. Další informace naleznete v tématu Jak používat struktury DateOnly a TimeOnly.
Důležité
DateOnly není k dispozici pro rozhraní .NET Framework.
V další části najdete informace, které potřebujete pro práci s časovými pásmy a vytváření aplikací pracujících s časovým pásmem, které můžou převádět data a časy z jednoho časového pásma do jiného.
Přehled časových pásem
Popisuje terminologii, koncepty a problémy související s vytvářením aplikací pracujících s časovým pásmem.
Volba mezi dateTime, DateTimeOffset, TimeSpan a TimeZoneInfo
Popisuje, kdy použít typy DateTime, DateTimeOffseta TimeZoneInfo při práci s daty data a času.
Zjišťování časových pásem definovaných v místním systému
Popisuje, jak vytvořit výčet časových pásem nalezených v místním systému.
Postupy: Vytvoření výčtu časových pásem přítomných na počítači
Poskytuje příklady, které uvádějí časová pásma definovaná v registru počítače a umožňují uživatelům vybrat předdefinované časové pásmo ze seznamu.
Postupy: Přístup k předdefinovaným objektům UTC a objektům místního časového pásma
Popisuje, jak získat přístup ke koordinovanému univerzálnímu času a místnímu časovému pásmu.
Postupy: Vytvoření instance objektu TimeZoneInfo
Popisuje, jak vytvořit instanci objektu TimeZoneInfo z místního systémového registru.
vytvoření instance objektu DateTimeOffset
Popisuje způsoby vytvoření instance objektu DateTimeOffset a způsoby, jak lze hodnotu DateTime převést na hodnotu DateTimeOffset.
Postupy: Vytváření časových pásem bez pravidel úprav
Popisuje, jak vytvořit vlastní časové pásmo, které nepodporuje přechod do a z letního času.
Postupy: Vytváření časových pásem s pravidly úprav
Popisuje, jak vytvořit vlastní časové pásmo, které podporuje jeden nebo více přechodů do a z letního času.
ukládání a obnovování časových pásem
Popisuje TimeZoneInfo podporu serializace a deserializace dat časového pásma a ilustruje některé scénáře, ve kterých lze tyto funkce použít.
Jak na to: Uložit časová pásma do vloženého prostředku
Popisuje, jak vytvořit vlastní časové pásmo a uložit jeho informace do zdrojového souboru.
Jak na to: Obnovení časových pásem z vloženého prostředku
Popisuje, jak vytvořit instanci vlastních časových pásem, která byla uložena ve vloženém souboru prostředků.
provádění aritmetických operací s daty a časy
Popisuje problémy související se sčítáním, odčítáním a porovnáním hodnot DateTime a DateTimeOffset.
Jak používat časová pásma v aritmetice s datem a časem
Popisuje, jak provádět výpočty data a času, které odrážejí pravidla úprav časového pásma.
Převod mezi DateTime a DateTimeOffset
Popisuje, jak převést mezi hodnotami DateTime a DateTimeOffset.
Převádění časů mezi časovými pásmy
Popisuje, jak převést časy z jednoho časového pásma na jiné.
Postupy: Řešení nejednoznačných časů
Popisuje, jak vyřešit nejednoznačný čas jeho mapováním na standardní čas časového pásma.
Postupy: Umožnit uživatelům vyřešit nejednoznačné časy
Popisuje, jak umožnit uživateli určit mapování mezi nejednoznačným místním časem a koordinovaným univerzálním časem.
Zpětná vazba k produktu .NET
.NET je open source projekt. Vyberte odkaz pro poskytnutí zpětné vazby:
Školení
Modul
Výběr správného datového typu v kódu jazyka C# - Training
Zvolte pro svůj kód správný datový typ z několika základních typů používaných v jazyce C#.