TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule メソッド

定義

オーバーロード

CreateAdjustmentRule(DateTime, DateTime, TimeSpan, TimeZoneInfo+TransitionTime, TimeZoneInfo+TransitionTime)

特定のタイム ゾーンの新しい調整規則を作成します。

CreateAdjustmentRule(DateTime, DateTime, TimeSpan, TimeZoneInfo+TransitionTime, TimeZoneInfo+TransitionTime, TimeSpan)

特定のタイム ゾーンの新しい調整規則を作成します。

CreateAdjustmentRule(DateTime, DateTime, TimeSpan, TimeZoneInfo+TransitionTime, TimeZoneInfo+TransitionTime)

特定のタイム ゾーンの新しい調整規則を作成します。

public:
 static TimeZoneInfo::AdjustmentRule ^ CreateAdjustmentRule(DateTime dateStart, DateTime dateEnd, TimeSpan daylightDelta, TimeZoneInfo::TransitionTime daylightTransitionStart, TimeZoneInfo::TransitionTime daylightTransitionEnd);
public static TimeZoneInfo.AdjustmentRule CreateAdjustmentRule (DateTime dateStart, DateTime dateEnd, TimeSpan daylightDelta, TimeZoneInfo.TransitionTime daylightTransitionStart, TimeZoneInfo.TransitionTime daylightTransitionEnd);
static member CreateAdjustmentRule : DateTime * DateTime * TimeSpan * TimeZoneInfo.TransitionTime * TimeZoneInfo.TransitionTime -> TimeZoneInfo.AdjustmentRule
Public Shared Function CreateAdjustmentRule (dateStart As DateTime, dateEnd As DateTime, daylightDelta As TimeSpan, daylightTransitionStart As TimeZoneInfo.TransitionTime, daylightTransitionEnd As TimeZoneInfo.TransitionTime) As TimeZoneInfo.AdjustmentRule

パラメーター

dateStart
DateTime

調整規則が有効になる日付。 dateStart パラメーターが DateTime.MinValue.Date の場合、これがタイム ゾーンで有効な最初の調整規則です。

dateEnd
DateTime

調整規則が適用される最後の日付。 dateEnd パラメーターが DateTime.MaxValue.Date の場合、調整規則の終了日はありません。

daylightDelta
TimeSpan

調整の結果から生じる時刻の変更。 この値がタイム ゾーンの BaseUtcOffset プロパティに追加され、世界協定時刻 (UTC) からの夏時間の正しいオフセットが得られます。 この値の範囲は -14 ~ 14 です。

daylightTransitionStart
TimeZoneInfo.TransitionTime

夏時間の開始日を定義するオブジェクト。

daylightTransitionEnd
TimeZoneInfo.TransitionTime

夏時間の終了日を定義するオブジェクト。

戻り値

TimeZoneInfo.AdjustmentRule

新しい調整規則を表すオブジェクト。

例外

dateStart パラメーターまたは dateEnd パラメーターの Kind プロパティが Unspecified と等しくありません。

  • または - daylightTransitionStart パラメーターは daylightTransitionEnd パラメーターと等価です。

  • または - dateStart パラメーターまたは dateEnd パラメーターに時刻値が含まれています。

dateEnddateStart よりも前の日時です。

  • または - daylightDelta が -14 未満か、14 を超えています。

  • または - Milliseconds パラメーターの daylightDelta プロパティが 0 ではありません。

  • または - Ticks パラメーターの daylightDelta プロパティの秒数が整数ではありません。

次の例では、代替の中央標準タイム ゾーンを作成し、1976 年から 1986 年、1987 年から 2006 年、および 2007 年以降の期間に対して 3 つの調整規則を定義します。 これらの規則は、要素が配列にコピーされるジェネリック List<T> オブジェクトに追加 TimeZoneInfo.AdjustmentRule されます。 この配列は、 メソッドの呼び出しで使用 TimeZoneInfo.CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[]) されます。

// Create alternate Central Standard Time to include historical time zone information
//
// Declare necessary TimeZoneInfo.AdjustmentRule objects for time zone
TimeSpan delta = new TimeSpan(1, 0, 0);
TimeZoneInfo.AdjustmentRule adjustment;
List<TimeZoneInfo.AdjustmentRule> adjustmentList = new List<TimeZoneInfo.AdjustmentRule>();
// Declare transition time variables to hold transition time information
TimeZoneInfo.TransitionTime transitionRuleStart, transitionRuleEnd;

// Define end rule (for 1976-2006)
transitionRuleEnd = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1, 2, 0, 0), 10, 5, DayOfWeek.Sunday);
// Define rule (1976-1986)
transitionRuleStart = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1, 2, 0, 0), 04, 05, DayOfWeek.Sunday);
adjustment = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(new DateTime(1976, 1, 1), new DateTime(1986, 12, 31), delta, transitionRuleStart, transitionRuleEnd);
adjustmentList.Add(adjustment);
// Define rule (1987-2006)  
transitionRuleStart = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1, 2, 0, 0), 04, 01, DayOfWeek.Sunday);
adjustment = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(new DateTime(1987, 1, 1), new DateTime(2006, 12, 31), delta, transitionRuleStart, transitionRuleEnd);
adjustmentList.Add(adjustment);
// Define rule (2007- )  
transitionRuleStart = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1, 2, 0, 0), 03, 02, DayOfWeek.Sunday);
transitionRuleEnd = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1, 2, 0, 0), 11, 01, DayOfWeek.Sunday);
adjustment = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(new DateTime(2007, 01, 01), DateTime.MaxValue.Date, delta, transitionRuleStart, transitionRuleEnd);
adjustmentList.Add(adjustment);
              
// Create custom U.S. Central Standard Time zone         
TimeZoneInfo.CreateCustomTimeZone("Central Standard Time", new TimeSpan(-6, 0, 0), 
                "(GMT-06:00) Central Time (US Only)", "Central Standard Time", 
                "Central Daylight Time", adjustmentList.ToArray());
' Create alternate Central Standard Time to include historical time zone information
'
' Declare necessary TimeZoneInfo.AdjustmentRule objects for time zone
Dim delta As New TimeSpan(1, 0, 0)
Dim adjustment As TimeZoneInfo.AdjustmentRule
Dim adjustmentList As New List(Of TimeZoneInfo.AdjustmentRule)
' Declare transition time variables to hold transition time information
Dim transitionRuleStart, transitionRuleEnd As TimeZoneInfo.TransitionTime

' Define end rule (for 1976-2006)
transitionRuleEnd = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#02:00:00AM#, 10, 5, DayOfWeek.Sunday)
' Define rule (1976-1986)
transitionRuleStart = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#2:00:00AM#, 04, 05, DayOfWeek.Sunday)
adjustment = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(#01/01/1976#, #12/31/1986#, delta, transitionRuleStart, transitionRuleEnd)
adjustmentList.Add(adjustment)
' Define rule (1987-2006)  
transitionRuleStart = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#2:00:00AM#, 04, 01, DayOfWeek.Sunday)
adjustment = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(#01/01/1987#, #12/31/2006#, delta, transitionRuleStart, transitionRuleEnd)
adjustmentList.Add(adjustment)
' Define rule (2007- )  
transitionRuleStart = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#2:00:00AM#, 03, 02, DayOfWeek.Sunday)
transitionRuleEnd = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#2:00:00AM#, 11, 01, DayOfWeek.Sunday)
adjustment = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(#01/01/2007#, Date.MaxValue.Date, delta, transitionRuleStart, transitionRuleEnd)
adjustmentList.Add(adjustment)
              
' Create custom U.S. Central Standard Time Zone
TimeZoneInfo.CreateCustomTimeZone("Central Standard Time", New TimeSpan(-6, 0, 0), _
                "(GMT-06:00) Central Time (US Only)", "Central Standard Time", _
                "Central Daylight Time", adjustmentList.ToArray())

注釈

このメソッドを使用すると、カスタム タイム ゾーンに対して 1 つ以上の調整規則を作成できます。 このメソッドの呼び出しによって返される オブジェクトの配列は、 パラメーターとして メソッドの 2 つの TimeZoneInfo.AdjustmentRule adjustmentRules オーバーロードに渡 CreateCustomTimeZone されます。 この例は、この手順を示しています。

注意

メソッドは、新しいタイム ゾーンの調整規則を定義する場合にのみ使用できます。既存のタイム ゾーンの調整規則を CreateAdjustmentRule 変更するために使用することはできません。

パラメーター dateStartdateEnd パラメーターは、時刻コンポーネントのない日付値である必要があります。または ArgumentException がスローされます。 時刻コンポーネントを削除するには、次のステートメントに示すように、日付と時刻の プロパティから値 DateTime Date を取得します。

DateTime.MinValue.Date  
DateTime.MaxValue.Date  
DateTime.Now.Date   
dateVariable.Date  

パラメーター Kind と パラメーターの dateStart プロパティ dateEnd も である必要があります DateTimeKind.Unspecified

パラメーターの値 daylightDelta の範囲は -14 ~ 14 です。 メソッドの呼び出しで使用される パラメーターと パラメーターの合計も daylightDelta baseUtcOffset TimeZoneInfo.CreateCustomTimeZone -14 から 14 の範囲である必要があります。または、 InvalidTimeZoneException がスローされます。

注意

パラメーター daylightDelta は、タイム ゾーンの標準時刻とその夏時間の差を定義します。 これは、タイム ゾーンの標準のタイム オフセットを指定する目的ではなく、協定世界時 (UTC) です。 クラスは、UTC からのこのオフセットが、タイム ゾーンの寿命を通して一定 TimeZoneInfo である前提とします。 調整規則の適用によって発生しないタイム ゾーンの UTC からのオフセットの変更を反映するには、 メソッドを使用して新しいカスタム タイム ゾーンを作成する CreateCustomTimeZone 必要があります。

適用対象

CreateAdjustmentRule(DateTime, DateTime, TimeSpan, TimeZoneInfo+TransitionTime, TimeZoneInfo+TransitionTime, TimeSpan)

特定のタイム ゾーンの新しい調整規則を作成します。

public:
 static TimeZoneInfo::AdjustmentRule ^ CreateAdjustmentRule(DateTime dateStart, DateTime dateEnd, TimeSpan daylightDelta, TimeZoneInfo::TransitionTime daylightTransitionStart, TimeZoneInfo::TransitionTime daylightTransitionEnd, TimeSpan baseUtcOffsetDelta);
public static TimeZoneInfo.AdjustmentRule CreateAdjustmentRule (DateTime dateStart, DateTime dateEnd, TimeSpan daylightDelta, TimeZoneInfo.TransitionTime daylightTransitionStart, TimeZoneInfo.TransitionTime daylightTransitionEnd, TimeSpan baseUtcOffsetDelta);
static member CreateAdjustmentRule : DateTime * DateTime * TimeSpan * TimeZoneInfo.TransitionTime * TimeZoneInfo.TransitionTime * TimeSpan -> TimeZoneInfo.AdjustmentRule
Public Shared Function CreateAdjustmentRule (dateStart As DateTime, dateEnd As DateTime, daylightDelta As TimeSpan, daylightTransitionStart As TimeZoneInfo.TransitionTime, daylightTransitionEnd As TimeZoneInfo.TransitionTime, baseUtcOffsetDelta As TimeSpan) As TimeZoneInfo.AdjustmentRule

パラメーター

dateStart
DateTime

調整規則が有効になる日付。 値が DateTime.MinValue.Dateの場合、これはタイム ゾーンに対して有効な最初の調整規則です。

dateEnd
DateTime

調整規則が適用される最後の日付。 値が DateTime.MaxValue.Dateの場合、調整規則には終了日はありません。

daylightDelta
TimeSpan

調整の結果から生じる時刻の変更。 この値は、タイム ゾーンの プロパティと プロパティに追加され、タイム ゾーン (UTC) から正しい夏時間 BaseUtcOffset BaseUtcOffsetDelta 協定世界時取得します。 この値の範囲は -14 ~ 14 です。

daylightTransitionStart
TimeZoneInfo.TransitionTime

夏時間の開始。

daylightTransitionEnd
TimeZoneInfo.TransitionTime

夏時間の終了。

baseUtcOffsetDelta
TimeSpan

調整規則期間中のタイム ゾーンの基準 UTC オフセットとの時間差。

戻り値

TimeZoneInfo.AdjustmentRule

新しい調整規則。

適用対象