Прочитать на английском

Поделиться через


TimeZoneInfo.IsAmbiguousTime Метод

Определение

Определяет, являются ли заданная дата и время в заданном часовом поясе неоднозначными и можно ли им сопоставить два и более момента времени в формате UTC.

Перегрузки

IsAmbiguousTime(DateTime)

Определяет, являются ли заданная дата и время в заданном часовом поясе неоднозначными и можно ли им сопоставить два и более момента времени в формате UTC.

IsAmbiguousTime(DateTimeOffset)

Определяет, являются ли заданная дата и время в заданном часовом поясе неоднозначными и можно ли им сопоставить два и более момента времени в формате UTC.

IsAmbiguousTime(DateTime)

Исходный код:
TimeZoneInfo.cs
Исходный код:
TimeZoneInfo.cs
Исходный код:
TimeZoneInfo.cs

Определяет, являются ли заданная дата и время в заданном часовом поясе неоднозначными и можно ли им сопоставить два и более момента времени в формате UTC.

C#
public bool IsAmbiguousTime(DateTime dateTime);

Параметры

dateTime
DateTime

Значение даты и времени.

Возвращаемое значение

Значение true, если параметр dateTime неоднозначен; в противном случае — значение false.

Исключения

Свойство Kind значения dateTime — Local, а dateTime — недопустимое время.

Примеры

В тихоокеанском часовом поясе летнее время заканчивается в 2:00 утра 4 ноября 2007 года. В следующем примере время с интервалом в одну минуту передается IsAmbiguousTime(DateTime) с 12:59 4 ноября 2007 г. до 2:01 4 ноября 2007 г. в метод TimeZoneInfo объекта , представляющего тихоокеанский часовой пояс. Выходные данные консоли показывают, что все периоды с 1:00 4 ноября 2007 года до 1:59 4 ноября 2007 года являются неоднозначными.

C#
   // Specify DateTimeKind in Date constructor
   DateTime baseTime = new DateTime(2007, 11, 4, 0, 59, 00, DateTimeKind.Unspecified);
   DateTime newTime;

   // Get Pacific Standard Time zone
   TimeZoneInfo pstZone = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time");

   // List possible ambiguous times for 63-minute interval, from 12:59 AM to 2:01 AM 
   for (int ctr = 0; ctr < 63; ctr++)
   {
      // Because of assignment, newTime.Kind is also DateTimeKind.Unspecified
      newTime = baseTime.AddMinutes(ctr);   
      Console.WriteLine("{0} is ambiguous: {1}", newTime, pstZone.IsAmbiguousTime(newTime));
   }

Комментарии

Неоднозначное время попадает в диапазон времени для текущего часового пояса. Это означает, что это может быть либо стандартное время, либо время, которое является результатом применения правила корректировки. Как правило, неоднозначное время приводит к тому, что часы возвращаются к стандартному времени из летнего времени. Иллюстрацию см. в разделе Пример.

Время в формате UTC не имеет неоднозначности; не поддерживаются и часовые пояса, которые не поддерживают переход на летнее время. Таким образом, эти часовые пояса не имеют правил корректировкиIsAmbiguousTime, и вызовы метода всегда возвращают .false

Для часовых поясов, которые соблюдают летнее время, точное поведение этого метода зависит от связи между свойством Kind и TimeZoneInfo объектом, как показано в следующей таблице.

Тип объекта TimeZoneInfo Значение свойства Kind Поведение
TimeZoneInfo.Local DateTimeKind.Local либо DateTimeKind.Unspecified Определяет, является ли dateTime параметр неоднозначным.
TimeZoneInfo.Local DateTimeKind.Utc dateTime Преобразует в местное время, а затем определяет, является ли это время неоднозначным.
TimeZoneInfo.Utc DateTimeKind.Utc либо DateTimeKind.Unspecified Возвращает false.
TimeZoneInfo.Utc DateTimeKind.Local Если dateTime является неоднозначным, предполагает, что это стандартное время, преобразует его в формат UTC и возвращает .false
Любой другой часовой пояс. DateTimeKind.Local либо DateTimeKind.Utc dateTime Преобразует в время в указанном часовом поясе, а затем определяет, является ли это время неоднозначным.
Любой другой часовой пояс. DateTimeKind.Unspecified Определяет, является ли dateTime неоднозначным.

См. также раздел

Применяется к

IsAmbiguousTime(DateTimeOffset)

Исходный код:
TimeZoneInfo.cs
Исходный код:
TimeZoneInfo.cs
Исходный код:
TimeZoneInfo.cs

Определяет, являются ли заданная дата и время в заданном часовом поясе неоднозначными и можно ли им сопоставить два и более момента времени в формате UTC.

C#
public bool IsAmbiguousTime(DateTimeOffset dateTimeOffset);

Параметры

dateTimeOffset
DateTimeOffset

Дата и время.

Возвращаемое значение

Значение true, если значение параметра dateTimeOffset в текущем часовом поясе является неоднозначным; в противном случае — значение false.

Комментарии

Неоднозначное время попадает в диапазон времени для текущего часового пояса. Это означает, что это может быть либо стандартное время, либо время, которое является результатом применения правила корректировки. Как правило, неоднозначное время приводит к тому, что часы возвращаются к стандартному времени из летнего времени. Время в формате UTC не имеет неоднозначности; не поддерживаются и часовые пояса, которые не поддерживают переход на летнее время.

Точное поведение метода зависит от связи между свойством OffsetdateTimeOffset параметра и текущим часовом поясом. Если значение свойства является возможным смещением Offset от utc текущего часового пояса, метод определяет, являются ли эти дата и время неоднозначными. В противном случае он преобразуется dateTimeOffset в время в текущем часовом поясе, а затем определяет, являются ли эти дата и время неоднозначными.

Применяется к