TimeZoneInfo.IsInvalidTime(DateTime) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
指示特定日期和时间是否无效。
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
日期和时间值。
返回
如果 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 。 |