TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オーバーロード
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
夏時間の終了日を定義するオブジェクト。
戻り値
新しい調整規則を表すオブジェクト。
例外
dateStart
パラメーターまたは dateEnd
パラメーターの Kind プロパティが Unspecified と等しくありません。
または -
daylightTransitionStart
パラメーターはdaylightTransitionEnd
パラメーターと等価です。または -
dateStart
パラメーターまたはdateEnd
パラメーターに時刻値が含まれています。
dateEnd
が dateStart
よりも前の日時です。
または -
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) から正しい夏時間オフセットを取得するために、タイム ゾーン BaseUtcOffset と BaseUtcOffsetDelta プロパティに追加されます。 この値の範囲は -14 ~ 14 です。
- daylightTransitionStart
- TimeZoneInfo.TransitionTime
夏時間の開始。
- daylightTransitionEnd
- TimeZoneInfo.TransitionTime
夏時間の終わり。
- baseUtcOffsetDelta
- TimeSpan
調整ルール期間中のタイム ゾーンの基準 UTC オフセットとの時間差。
戻り値
新しい調整ルール。