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

日期和时间值。

返回

Boolean

如果 dateTime 无效,则为 true;否则为 false

示例

在太平洋时区,夏令时从凌晨 2:00 开始。 2006 年 4 月 2 日。 以下代码按一分钟间隔从上午 1:59 传递时间。 2006年4月2日凌晨3:01 2006 年 4 月 2 日,指向 IsInvalidTime 表示太平洋时区的对象的方法 TimeZoneInfo 。 控制台输出指示从凌晨 2:00 起的所有时间。 2006年4月2日,上午2:59 2006 年 4 月 2 日无效。

// 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) 的时间段内。 通常,当时间在夏令时向前移动时,会出现无效的时间。 有关插图,请参阅“示例”部分。

参数属性dateTime的值Kind会影响是否dateTime表示无效的时间,如下表所示。

DateTime.Kind 属性 TimeZoneInfo 对象 ((如果适用)) 行为
DateTimeKind.Local TimeZoneInfo.Local 确定时间是否无效。
DateTimeKind.Local TimeZoneInfo.Utc 或非本地时区。 dateTime转换为对象的时间TimeZoneInfo并返回 false
DateTimeKind.Unspecified 不适用。 dateTime假设是对象的时间TimeZoneInfo,并确定对象是否无效。
DateTimeKind.Utc 不适用。 返回 false

适用于

另请参阅