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
let delta = TimeSpan(1, 0, 0)
let adjustmentList = ResizeArray()

// Define end rule (for 1976-2006)
let transitionRuleEnd = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1, 2, 0, 0), 10, 5, DayOfWeek.Sunday)
// Define rule (1976-1986)
let transitionRuleStart = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1, 2, 0, 0), 04, 05, DayOfWeek.Sunday)
TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(DateTime(1976, 1, 1), DateTime(1986, 12, 31), delta, transitionRuleStart, transitionRuleEnd)
|> adjustmentList.Add
// Define rule (1987-2006)  
let transitionRuleStart = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1, 2, 0, 0), 04, 01, DayOfWeek.Sunday)
TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(DateTime(1987, 1, 1), DateTime(2006, 12, 31), delta, transitionRuleStart, transitionRuleEnd)
|> adjustmentList.Add
// Define rule (2007- )  
let transitionRuleStart = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1, 2, 0, 0), 03, 02, DayOfWeek.Sunday)
let transitionRuleEnd = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1, 2, 0, 0), 11, 01, DayOfWeek.Sunday)
TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(DateTime(2007, 01, 01), DateTime.MaxValue.Date, delta, transitionRuleStart, transitionRuleEnd)
|> adjustmentList.Add
            
// Create custom U.S. Central Standard Time zone         
TimeZoneInfo.CreateCustomTimeZone("Central Standard Time", 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 つ以上の調整規則を作成できます。 その後、このメソッドの TimeZoneInfo.AdjustmentRule 呼び出しによって返されるオブジェクトの配列を、メソッドの adjustmentRules CreateCustomTimeZone 2 つのオーバーロードにパラメーターとして渡すことができます。 この例では、この手順を示します。

注意

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

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

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

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

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

注意

このパラメーターは daylightDelta 、タイム ゾーンの標準時間と夏時間の差を定義します。 協定世界時 (UTC) からのタイム ゾーンの標準タイム オフセットを定義するものではありません。 このクラスは TimeZoneInfo 、UTC からのこのオフセットがタイム ゾーンの有効期間を通じて一定であると仮定します。 調整ルールの適用によって発生しない 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) から正しい夏時間オフセットを取得するために、タイム ゾーン BaseUtcOffsetBaseUtcOffsetDelta プロパティに追加されます。 この値の範囲は -14 ~ 14 です。

daylightTransitionStart
TimeZoneInfo.TransitionTime

夏時間の開始。

daylightTransitionEnd
TimeZoneInfo.TransitionTime

夏時間の終わり。

baseUtcOffsetDelta
TimeSpan

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

戻り値

TimeZoneInfo.AdjustmentRule

新しい調整ルール。

適用対象