英語で読む

次の方法で共有


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)

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

C#
public static TimeZoneInfo.AdjustmentRule CreateAdjustmentRule (DateTime dateStart, DateTime dateEnd, TimeSpan daylightDelta, TimeZoneInfo.TransitionTime daylightTransitionStart, TimeZoneInfo.TransitionTime daylightTransitionEnd);

パラメーター

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[]) で使用されます。

C#
// 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());

注釈

このメソッドを使用して、カスタム タイム ゾーンの 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 使用して新しいカスタム タイム ゾーンを作成する必要があります。

適用対象

.NET 7 およびその他のバージョン
製品 バージョン
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 2.0, 2.1

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

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

C#
public static TimeZoneInfo.AdjustmentRule CreateAdjustmentRule (DateTime dateStart, DateTime dateEnd, TimeSpan daylightDelta, TimeZoneInfo.TransitionTime daylightTransitionStart, TimeZoneInfo.TransitionTime daylightTransitionEnd, TimeSpan baseUtcOffsetDelta);

パラメーター

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

新しい調整ルール。

適用対象

.NET 7 および .NET 6
製品 バージョン
.NET 6, 7