TimeZoneInfo.IsInvalidTime(DateTime) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Указывает, являются ли определенная дата и время допустимыми.
public:
bool IsInvalidTime(DateTime dateTime);
public bool IsInvalidTime (DateTime dateTime);
member this.IsInvalidTime : DateTime -> bool
Public Function IsInvalidTime (dateTime As DateTime) As Boolean
Параметры
- dateTime
- DateTime
Значение даты и времени.
Возвращаемое значение
Значение true
, если значение dateTime
недопустимо; в противном случае — значение false
.
Примеры
В тихоокеанском часовом поясе летнее время начинается в 2:00 утра. 2 апреля 2006 г. Следующий код передает время в течение одной минуты с 1:59 утра. 2 апреля 2006 г. до 3:01 2 апреля 2006 г. к IsInvalidTime методу TimeZoneInfo объекта, представляющего часовой пояс Тихого океана. Выходные данные консоли указывают, что все время с 2:00 утра. с 2 апреля 2006 г. до 2:59 утра 2 апреля 2006 г. недействительны.
// Specify DateTimeKind in Date constructor
DateTime baseTime = new DateTime(2007, 3, 11, 1, 59, 0, DateTimeKind.Unspecified);
DateTime newTime;
// Get Pacific Standard Time zone
TimeZoneInfo pstZone = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time");
// List possible invalid times for a 63-minute interval, from 1:59 AM to 3: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 invalid: {1}", newTime, pstZone.IsInvalidTime(newTime));
}
// Specify DateTimeKind in Date constructor
let baseTime = DateTime(2007, 3, 11, 1, 59, 0, DateTimeKind.Unspecified)
// Get Pacific Standard Time zone
let pstZone = TimeZoneInfo.FindSystemTimeZoneById "Pacific Standard Time"
// List possible invalid times for a 63-minute interval, from 1:59 AM to 3: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 invalid: {pstZone.IsInvalidTime newTime}"
' Specify DateTimeKind in Date constructor
Dim baseTime As New Date(2007, 3, 11, 1, 59, 0, DateTimeKind.Unspecified)
Dim newTime As Date
' Get Pacific Standard Time zone
Dim pstZone As TimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time")
' List possible invalid times for 63-minute interval, from 1:59 AM to 3: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 invalid: {1}", newTime, pstZone.IsInvalidTime(newTime))
Next
Комментарии
Недопустимое время попадает в диапазон времени для текущего часового пояса, которое не может быть сопоставлено с универсальным временем в формате UTC из-за применения правила корректировки. Как правило, недопустимые времена происходят, когда время движется вперед для летнего времени. См. раздел "Пример" для иллюстрации.
Значение Kind свойства dateTime
параметра влияет на то, представляет ли dateTime
значение недопустимое время, как показано в следующей таблице.
Свойство DateTime.Kind | Объект TimeZoneInfo (если применимо) | Поведение |
---|---|---|
DateTimeKind.Local | TimeZoneInfo.Local | Определяет, является ли время недопустимым. |
DateTimeKind.Local | TimeZoneInfo.Utc или нелокального часового пояса. | dateTime Преобразуется в время TimeZoneInfo объекта и возвращаетсяfalse . |
DateTimeKind.Unspecified | Не применяется | dateTime Предполагается, что время TimeZoneInfo объекта и определяет, является ли он недопустимым. |
DateTimeKind.Utc | Не применяется | Возвращает false . |