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


TimeZoneInfo.IsAmbiguousTime Метод

Определение

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

Перегрузки

IsAmbiguousTime(DateTime)

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

IsAmbiguousTime(DateTimeOffset)

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

IsAmbiguousTime(DateTime)

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

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

public:
 bool IsAmbiguousTime(DateTime dateTime);
public bool IsAmbiguousTime (DateTime dateTime);
member this.IsAmbiguousTime : DateTime -> bool
Public Function IsAmbiguousTime (dateTime As DateTime) As Boolean

Параметры

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 года являются неоднозначными.

   // 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));
   }
// Specify DateTimeKind in Date constructor
let baseTime = DateTime(2007, 11, 4, 0, 59, 00, DateTimeKind.Unspecified)

// Get Pacific Standard Time zone
let pstZone = TimeZoneInfo.FindSystemTimeZoneById "Pacific Standard Time"

// List possible ambiguous times for 63-minute interval, from 12:59 AM to 2:01 AM 
for i = 0 to 62 do
// Because of assignment, newTime.Kind is also DateTimeKind.Unspecified
    let newTime = baseTime.AddMinutes i   
    printfn $"{newTime} is ambiguous: {pstZone.IsAmbiguousTime newTime}"
' Specify DateTimeKind in Date constructor
Dim baseTime As New Date(2007, 11, 4, 0, 59, 00, DateTimeKind.Unspecified)
Dim newTime As Date

' Get Pacific Standard Time zone
Dim pstZone As TimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time")

' List possible ambiguous times for 63-minute interval, from 12:59 AM to 2:01 AM 
For ctr As Integer = 0 To 62
   ' Because of assignment, newTime.Kind is also DateTimeKind.Unspecified
   newTime = baseTime.AddMinutes(ctr)   
   Console.WriteLine("{0} is ambiguous: {1}", newTime, pstZone.IsAmbiguousTime(newTime))
Next

Комментарии

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

Время в формате 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.

public:
 bool IsAmbiguousTime(DateTimeOffset dateTimeOffset);
public bool IsAmbiguousTime (DateTimeOffset dateTimeOffset);
member this.IsAmbiguousTime : DateTimeOffset -> bool
Public Function IsAmbiguousTime (dateTimeOffset As DateTimeOffset) As Boolean

Параметры

dateTimeOffset
DateTimeOffset

Дата и время.

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

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

Комментарии

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

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

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