Даты, время и часовые пояса

В дополнение к основной структуре DateTime платформа .NET предоставляет следующие классы, которые поддерживают работу с часовыми поясами.

  • TimeZone

    Этот класс используется для работы с локальным часовым поясом и с временем в формате UTC. Функциональные возможности TimeZone класса в значительной степени заменены классом TimeZoneInfo .

  • TimeZoneInfo

    Этот класс используется для работы с любым часовым поясом, который является стандартным в системе, для создания новых часовых поясов и для быстрого преобразования значений даты и времени из одного часового пояса в другой. При разработке нового решения используйте класс TimeZoneInfo вместо класса TimeZone.

  • DateTimeOffset

    Эта структура используется для работы с датами и временем, чье смещение (или различие) от времени в формате UTC известно. Структура DateTimeOffset объединяет значение даты и времени со смещением этого времени от времени в формате UTC. Благодаря связи со временем в формате UTC отдельное значение даты и времени однозначно идентифицирует единственный момент времени. Это делает значение DateTimeOffset более пригодным для переноса с одного компьютера на другой, чем значение DateTime.

Начиная с .NET 6 доступны следующие типы:

  • DateOnly

    Используйте эту структуру при работе со значением, которое представляет только дату. Дата представляет весь день с начала дня до конца. DateOnly имеет диапазон 0001-01-01 до 9999-12-31. И этот тип представляет сочетание месяца, дня и года без определенного времени. Если вы ранее использовали DateTime тип в коде для представления даты, которая не учитывала время, используйте этот тип на месте.

  • TimeOnly

    Эта структура используется для представления времени без даты. Время представляет часы, минуты и секунды неспецифического дня. TimeOnly имеет диапазон 00:00:00.0000000 от 000 до 23:59:59.9999999. Этот тип можно использовать для замены DateTime и TimeSpan типов в коде при использовании этих типов для представления времени.

В следующем разделе содержатся сведения, необходимые для работы с часовыми поясами и создания приложений с поддержкой часовых поясов, которые могут преобразовывать даты и время из одного часового пояса в другой.

В этом разделе

Общие сведения о часовых поясах
Статья содержит описание терминологии, основных понятий и вопросов, связанных с созданием приложений, использующих часовые пояса.

Выбор между DateTime, DateTimeOffset, TimeSpan и TimeZoneInfo
Описывает, когда следует использовать DateTimeDateTimeOffset, и TimeZoneInfo типы при работе с данными даты и времени.

Поиск часового пояса, заданного в локальной системе
Статья содержит способы перечисления часовых поясов, найденных на локальном компьютере.

Практическое руководство. Перечисление присутствующих на компьютере часовых поясов
Статья содержит примеры, в которых перечисляются часовые пояса, определенные в реестре компьютера, а пользователям предоставляется возможность выбрать предопределенный часовой пояс из списка.

Практическое руководство. Доступ к предварительно определенным объектам UTC и объектам местных часовых поясов
Из этой статьи вы узнаете, как использовать местный часовой пояс и часовые пояса UTC.

Практическое руководство. Создание экземпляра объекта TimeZoneInfo
Описывает создание экземпляра TimeZoneInfo объекта из локального системного реестра.

Создание экземпляра объекта DateTimeOffset
Описывает способы создания экземпляра DateTimeOffset объекта и способы DateTime преобразования значения в DateTimeOffset значение.

Практическое руководство. Создание часовых поясов без правил коррекции
В статье описываются способы создания пользовательского часового пояса, который не поддерживает переход летнее время и с него.

Практическое руководство. Создание часовых поясов с правилами коррекции
В статье описываются способы создания пользовательского часового пояса, который поддерживает как минимум один переход летнее время и с него.

Сохранение и восстановление часовых поясов
TimeZoneInfo Описывает поддержку сериализации и десериализации данных часового пояса и демонстрирует некоторые сценарии, в которых можно использовать эти функции.

Практическое руководство. Сохранение часовых поясов во внедренном ресурсе
Из этой статьи вы узнаете, как создавать пользовательские часовые пояса и сохранять их информацию в файле ресурсов.

Практическое руководство. Восстановление часовых поясов из внедренного ресурса
Из этой статьи вы узнаете, как создать экземпляр пользовательского часового пояса, который сохранен во внедренном файле ресурсов.

Выполнение арифметических операций с датами и временем
Обсуждаются проблемы, связанные с добавлением, вычитание DateTime и сравнение и DateTimeOffset значения.

Практическое руководство. Использование часовых поясов в арифметических операциях с датами и временем
Из этой статьи вы узнаете, как выполнять арифметические операции с датами и временем, отражающие правила коррекции часовых поясов.

Взаимное преобразование структур DateTime и DateTimeOffset
Описывает преобразование между DateTime и DateTimeOffset значениями.

Преобразование времени между часовых поясами
Из этой статьи вы узнаете, как преобразовывать время из одного часового пояса в другой.

Практическое руководство. Разрешение проблемы неоднозначности времени
Статья содержит сведения об устранении неоднозначного времени с помощью его сопоставления с часовым поясом стандартного времени.

Практическое руководство. Предоставление пользователям возможности разрешения неоднозначности времени
Статья содержит сведения о том, как разрешить пользователям определять сопоставление между неоднозначными местным временем и временем в формате UTC.

Ссылка

System.TimeZoneInfo