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
.
Исключения
Примеры
В тихоокеанском часовом поясе летнее время заканчивается в 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
в время в текущем часовом поясе, а затем определяет, являются ли эти дата и время неоднозначными.