Даты, время и часовые пояса
В дополнение к основной структуре DateTime платформа .NET предоставляет следующие классы, которые поддерживают работу с часовыми поясами.
-
Этот класс используется для работы с локальным часовым поясом и с временем в формате UTC. Функциональные возможности TimeZone класса в значительной степени заменены классом TimeZoneInfo .
-
Этот класс используется для работы с любым часовым поясом, который является стандартным в системе, для создания новых часовых поясов и для быстрого преобразования значений даты и времени из одного часового пояса в другой. При разработке нового решения используйте класс TimeZoneInfo вместо класса TimeZone.
-
Эта структура используется для работы с датами и временем, чье смещение (или различие) от времени в формате UTC известно. Структура DateTimeOffset объединяет значение даты и времени со смещением этого времени от времени в формате UTC. Благодаря связи со временем в формате UTC отдельное значение даты и времени однозначно идентифицирует единственный момент времени. Это делает значение DateTimeOffset более пригодным для переноса с одного компьютера на другой, чем значение DateTime.
Начиная с .NET 6 доступны следующие типы:
-
Используйте эту структуру при работе со значением, которое представляет только дату. Дата представляет весь день с начала дня до конца.
DateOnly
имеет диапазон0001-01-01
до9999-12-31
. И этот тип представляет сочетание месяца, дня и года без определенного времени. Если вы ранее использовалиDateTime
тип в коде для представления даты, которая не учитывала время, используйте этот тип на месте. -
Эта структура используется для представления времени без даты. Время представляет часы, минуты и секунды неспецифического дня.
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.