Daty, godziny i strefy czasowe
Oprócz podstawowej DateTime struktury platforma .NET udostępnia następujące klasy, które obsługują pracę ze strefami czasowymi:
-
Ta klasa służy do pracy z lokalną strefą czasową systemu i strefą uniwersalnego czasu koordynowanego (UTC). Funkcjonalność TimeZone klasy jest w dużej mierze zastępowana przez klasę TimeZoneInfo .
-
Ta klasa służy do pracy z dowolną strefą czasową, która jest wstępnie zdefiniowana w systemie, w celu utworzenia nowych stref czasowych oraz łatwego konwertowania dat i godzin z jednej strefy czasowej na inną. W przypadku nowego programowania użyj TimeZoneInfo klasy zamiast TimeZone klasy .
-
Ta struktura umożliwia pracę z datami i godzinami, których przesunięcie (lub różnica) od czasu UTC jest znane. Struktura DateTimeOffset łączy wartość daty i godziny z przesunięciem tego czasu z czasu UTC. Ze względu na relację z utc pojedyncza wartość daty i godziny jednoznacznie identyfikuje pojedynczy punkt w czasie. Dzięki temu wartość jest bardziej przenośna DateTimeOffset z jednego komputera na inny niż DateTime wartość.
Począwszy od platformy .NET 6, dostępne są następujące typy:
-
Użyj tej struktury podczas pracy z wartością, która reprezentuje tylko datę. Data reprezentuje cały dzień od początku dnia do końca.
DateOnly
element ma zakres od0001-01-01
.9999-12-31
Ten typ reprezentuje kombinację miesiąca, dnia i roku bez określonego czasu. Jeśli wcześniej użytoDateTime
typu w kodzie do reprezentowania daty, która zignorowała godzinę, użyj tego typu w swoim miejscu. -
Ta struktura służy do reprezentowania godziny bez daty. Czas reprezentuje godziny, minuty i sekundy nieokreślinego dnia.
TimeOnly
ma zakres od00:00:00.0000000
do23:59:59.9999999
. Ten typ może służyć do zastępowaniaDateTime
typów iTimeSpan
typów w kodzie, gdy użyto tych typów do reprezentowania czasu.
W następnej sekcji przedstawiono informacje potrzebne do pracy ze strefami czasowymi oraz tworzenie aplikacji obsługujących strefy czasowe, które mogą konwertować daty i godziny z jednej strefy czasowej na inną.
W tej sekcji
Strefy czasowe — omówienie
Omówienie terminologii, pojęć i problemów związanych z tworzeniem aplikacji obsługujących strefy czasowe.
Wybieranie pomiędzy elementem DateTime, DateTimeOffset, TimeSpan i TimeZoneInfo
W tym artykule omówiono, kiedy należy używać DateTimetypów , DateTimeOffseti TimeZoneInfo podczas pracy z danymi daty i godziny.
Znajdowanie stref czasowych zdefiniowanych w systemie lokalnym
Opisuje sposób wyliczania stref czasowych znalezionych w systemie lokalnym.
Instrukcje: Wyliczanie stref czasowych na komputerze
Zawiera przykłady, które wyliczają strefy czasowe zdefiniowane w rejestrze komputera i umożliwiają użytkownikom wybranie wstępnie zdefiniowanej strefy czasowej z listy.
Instrukcje: Uzyskiwanie dostępu do wstępnie zdefiniowanych obiektów lokalnej strefy czasowej i strefy czasowej UTC
Opisuje sposób uzyskiwania dostępu do uniwersalnego czasu koordynowanego i lokalnej strefy czasowej.
Instrukcje: Tworzenie wystąpień obiektów TimeZoneInfo
Opisuje sposób tworzenia wystąpienia TimeZoneInfo obiektu z rejestru systemu lokalnego.
Tworzenie wystąpień obiektów DateTimeOffset
W tym artykule omówiono sposoby DateTimeOffset tworzenia wystąpienia obiektu oraz sposoby DateTime konwertowania wartości na DateTimeOffset wartość.
Instrukcje: Tworzenie stref czasowych bez reguł korygowania
Opisuje sposób tworzenia niestandardowej strefy czasowej, która nie obsługuje przejścia do i z czasu letniego.
Instrukcje: Tworzenie stref czasowych przy użyciu reguł korygowania
Opisuje sposób tworzenia niestandardowej strefy czasowej obsługującej co najmniej jedno przejście do i z czasu letniego.
Zapisywanie i przywracanie stref czasowych
Opisuje TimeZoneInfo obsługę serializacji i deserializacji danych strefy czasowej oraz ilustruje niektóre scenariusze, w których można używać tych funkcji.
Instrukcje: Zapisywanie stref czasowych w zasobie osadzonym
Opisuje sposób tworzenia niestandardowej strefy czasowej i zapisywania informacji w pliku zasobu.
Instrukcje: Przywracanie stref czasowych z zasobu osadzonego
Opisuje sposób tworzenia wystąpień niestandardowych stref czasowych, które zostały zapisane w osadzonym pliku zasobów.
Wykonywanie operacji arytmetycznych na wartościach dat i godzin
W tym artykule omówiono problemy związane z dodawaniem, odejmowaniem i porównywaniem wartości oraz DateTimeOffset ich porównywaniemDateTime.
Instrukcje: Używanie stref czasowych w arytmetyce wartości daty i godziny
W tym artykule omówiono sposób wykonywania arytmetyki daty i godziny, która odzwierciedla reguły korekty strefy czasowej.
Konwertowanie pomiędzy DateTime i DateTimeOffset
Opisuje sposób konwertowania między wartościami DateTime i DateTimeOffset .
Konwertowanie czasów między strefami czasowymi
Opisuje sposób konwertowania czasu z jednej strefy czasowej na inną.
Instrukcje: Rozwiązywanie niejednoznacznych wartości czasu
Opisuje sposób rozwiązywania niejednoznacznego czasu przez mapowanie go na standardowy czas strefy czasowej.
Instrukcje: Pozwalanie użytkownikom na rozwiązywanie niejednoznacznych wartości czasu
Opisuje, jak umożliwić użytkownikowi określenie mapowania między niejednoznacznym czasem lokalnym a uniwersalnym czasem koordynowanym.