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 時から始まります。 2006 年 4 月 2 日 次のコードは、午前 1 時 59 分から 1 分間隔で時刻を渡します。 2006 年 4 月 2 日午前 3 時 1 分まで 2006 年 4 月 2 日に、 IsInvalidTime 太平洋タイム ゾーンを TimeZoneInfo 表すオブジェクトのメソッドに対して行われます。 コンソールの出力は、午前 2 時からのすべての時刻を示します。 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) にマップできない現在のタイム ゾーンの時間の範囲内にあります。 通常、夏時間の前に時間が移動すると、無効な時刻が発生します。 図については、「例」セクションを参照してください。

パラメーターの Kind プロパティの値は、次の dateTime 表に示すように、無効な時刻を表すかどうか dateTime に影響します。

DateTime.Kind プロパティ TimeZoneInfo オブジェクト (該当する場合) 動作
DateTimeKind.Local TimeZoneInfo.Local 時刻が無効かどうかを判断します。
DateTimeKind.Local TimeZoneInfo.Utc またはローカル以外のタイム ゾーン。 オブジェクトの時刻にTimeZoneInfo変換dateTimeし、返しますfalse
DateTimeKind.Unspecified 適用不可。 オブジェクトの dateTime 時刻 TimeZoneInfo を想定し、無効かどうかを判断します。
DateTimeKind.Utc 適用不可。 false を返します。

適用対象

こちらもご覧ください