TimeZoneInfo.CreateCustomTimeZone メソッド

定義

ローカル コンピューターにないタイム ゾーンを定義します。Defines a time zone that is not found on the local computer.

オーバーロード

CreateCustomTimeZone(String, TimeSpan, String, String)

指定された ID、世界協定時刻 (UTC) からのオフセット、表示名、および標準時の表示名を使用して、カスタム タイム ゾーンを作成します。Creates a custom time zone with a specified identifier, an offset from Coordinated Universal Time (UTC), a display name, and a standard time display name.

CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[])

指定された ID、世界協定時刻 (UTC) からのオフセット、表示名、標準時名、夏時間名、および夏時間規則を使用して、カスタム タイム ゾーンを作成します。Creates a custom time zone with a specified identifier, an offset from Coordinated Universal Time (UTC), a display name, a standard time name, a daylight saving time name, and daylight saving time rules.

CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[], Boolean)

指定された ID、世界協定時刻 (UTC) からのオフセット、表示名、標準時名、夏時間名、夏時間規則、および返されるオブジェクトに夏時間情報を反映するかどうかを示す値を使用して、カスタム タイム ゾーンを作成します。Creates a custom time zone with a specified identifier, an offset from Coordinated Universal Time (UTC), a display name, a standard time name, a daylight saving time name, daylight saving time rules, and a value that indicates whether the returned object reflects daylight saving time information.

CreateCustomTimeZone(String, TimeSpan, String, String)

指定された ID、世界協定時刻 (UTC) からのオフセット、表示名、および標準時の表示名を使用して、カスタム タイム ゾーンを作成します。Creates a custom time zone with a specified identifier, an offset from Coordinated Universal Time (UTC), a display name, and a standard time display name.

public:
 static TimeZoneInfo ^ CreateCustomTimeZone(System::String ^ id, TimeSpan baseUtcOffset, System::String ^ displayName, System::String ^ standardDisplayName);
public static TimeZoneInfo CreateCustomTimeZone (string id, TimeSpan baseUtcOffset, string displayName, string standardDisplayName);
static member CreateCustomTimeZone : string * TimeSpan * string * string -> TimeZoneInfo
Public Shared Function CreateCustomTimeZone (id As String, baseUtcOffset As TimeSpan, displayName As String, standardDisplayName As String) As TimeZoneInfo

パラメーター

id
String

タイム ゾーン ID。The time zone's identifier.

baseUtcOffset
TimeSpan

このタイム ゾーンの標準時と世界協定時刻 (UTC) との時差を表すオブジェクト。An object that represents the time difference between this time zone and Coordinated Universal Time (UTC).

displayName
String

新しいタイム ゾーンの表示名。The display name of the new time zone.

standardDisplayName
String

新しいタイム ゾーンの標準時名。The name of the new time zone's standard time.

戻り値

新しいタイム ゾーン。The new time zone.

例外

id パラメーターが null です。The id parameter is null.

id パラメーターが空の文字列 ("") です。The id parameter is an empty string ("").

- または --or- baseUtcOffset パラメーターが、分を表す整数値ではありません。The baseUtcOffset parameter does not represent a whole number of minutes.

baseUtcOffset パラメーターが 14 時間を上回っているか、-14 時間を下回っています。The baseUtcOffset parameter is greater than 14 hours or less than -14 hours.

次の例では、南極の Mawson および Holme Bay 領域のカスタムタイムゾーンを作成します。The following example creates a custom time zone for the Mawson and Holme Bay regions of Antarctica. 次に、現地時刻を新しいタイムゾーンの時刻に変換した結果が表示されます。It then displays the result of converting the local time to the time in the new time zone.

string displayName = "(GMT+06:00) Antarctica/Mawson Time";
string standardName = "Mawson Time"; 
TimeSpan offset = new TimeSpan(06, 00, 00);
TimeZoneInfo mawson = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName);
Console.WriteLine("The current time is {0} {1}", 
                  TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.Local, mawson),
                  mawson.StandardName);      
Dim displayName As String = "(GMT+06:00) Antarctica/Mawson Time"
Dim standardName As String = "Mawson Time" 
Dim offset As TimeSpan = New TimeSpan(06, 00, 00)
Dim mawson As TimeZoneInfo = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName)
Console.WriteLine("The current time is {0} {1}", _ 
                  TimeZoneInfo.ConvertTime(Date.Now, TimeZoneInfo.Local, mawson), _
                  mawson.StandardName)      

注釈

CreateCustomTimeZone(String, TimeSpan, String, String) メソッドのこのオーバーロードは、調整のないタイムゾーン (つまり、夏時間をサポートしていないタイムゾーン) を作成するのに適しています。This overload of the CreateCustomTimeZone(String, TimeSpan, String, String) method is suitable for creating a time zone that has no adjustments (that is, a time zone that does not support daylight saving time). 夏時間の調整を含むタイムゾーンを定義するには、TimeZoneInfo.CreateCustomTimeZone または TimeZoneInfo.CreateCustomTimeZone のいずれかの方法を使用します。To define a time zone that includes adjustments for daylight saving time, use either the TimeZoneInfo.CreateCustomTimeZone or the TimeZoneInfo.CreateCustomTimeZone method.

次の表は、TimeZoneInfo.CreateCustomTimeZone メソッドに提供されるパラメーターと、メソッド呼び出しによって返される TimeZoneInfo オブジェクトのプロパティとの間の関係を示しています。The following table shows the relationship between the parameters that are provided to the TimeZoneInfo.CreateCustomTimeZone method and the properties of the TimeZoneInfo object that are returned by the method call.

CreateCustomTimeZone パラメーターCreateCustomTimeZone parameter TimeZoneInfo プロパティTimeZoneInfo property
id Id
baseUtcOffset BaseUtcOffset
displayName DisplayName
standardDisplayName StandardName

通常、タイムゾーンの標準時名とその識別子は同じです。Typically, the time zone's standard time name and its identifier are the same. ただし、タイムゾーンの識別子の長さは32文字を超えないようにする必要があります。However, the length of the time zone's identifier should not exceed 32 characters. displayName パラメーターに渡された文字列は、かなり標準的な形式に従います。The string passed to the displayName parameter follows a fairly standard format. 表示名の最初の部分は、協定世界時からのタイムゾーンのベースオフセットです。これは、かっこで囲まれた GMT (グリニッジ標準時) で表されます。The first portion of the display name is the time zone's base offset from Coordinated Universal Time, which is indicated by the acronym GMT (for Greenwich Mean Time), enclosed in parentheses. この後には、タイムゾーン自体、またはタイムゾーン内の1つ以上の都市、地域、または国を識別する文字列、またはその両方が続きます。This is followed by a string that identifies the time zone itself, or one or more of the cities, regions, or countries in the time zone, or both. 次に例を示します。For example:

(GMT+02:00) Athens, Beirut, Istanbul, Minsk  
(GMT-02:00) Mid-Atlantic  
(GMT-07:00) Mountain Time (US & Canada)  

こちらもご覧ください

CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[])

指定された ID、世界協定時刻 (UTC) からのオフセット、表示名、標準時名、夏時間名、および夏時間規則を使用して、カスタム タイム ゾーンを作成します。Creates a custom time zone with a specified identifier, an offset from Coordinated Universal Time (UTC), a display name, a standard time name, a daylight saving time name, and daylight saving time rules.

public:
 static TimeZoneInfo ^ CreateCustomTimeZone(System::String ^ id, TimeSpan baseUtcOffset, System::String ^ displayName, System::String ^ standardDisplayName, System::String ^ daylightDisplayName, cli::array <TimeZoneInfo::AdjustmentRule ^> ^ adjustmentRules);
public static TimeZoneInfo CreateCustomTimeZone (string id, TimeSpan baseUtcOffset, string displayName, string standardDisplayName, string daylightDisplayName, TimeZoneInfo.AdjustmentRule[] adjustmentRules);
static member CreateCustomTimeZone : string * TimeSpan * string * string * string * TimeZoneInfo.AdjustmentRule[] -> TimeZoneInfo
Public Shared Function CreateCustomTimeZone (id As String, baseUtcOffset As TimeSpan, displayName As String, standardDisplayName As String, daylightDisplayName As String, adjustmentRules As TimeZoneInfo.AdjustmentRule()) As TimeZoneInfo

パラメーター

id
String

タイム ゾーン ID。The time zone's identifier.

baseUtcOffset
TimeSpan

このタイム ゾーンの標準時と世界協定時刻 (UTC) との時差を表すオブジェクト。An object that represents the time difference between this time zone and Coordinated Universal Time (UTC).

displayName
String

新しいタイム ゾーンの表示名。The display name of the new time zone.

standardDisplayName
String

新しいタイム ゾーンの標準時名。The new time zone's standard time name.

daylightDisplayName
String

新しいタイム ゾーンの夏時間名。The daylight saving time name of the new time zone.

adjustmentRules
TimeZoneInfo.AdjustmentRule[]

特定の期間のベース UTC オフセットを増やす配列。An array that augments the base UTC offset for a particular period.

戻り値

新しいタイム ゾーンを表す TimeZoneInfo オブジェクト。A TimeZoneInfo object that represents the new time zone.

例外

id パラメーターが null です。The id parameter is null.

id パラメーターが空の文字列 ("") です。The id parameter is an empty string ("").

- または --or- baseUtcOffset パラメーターが、分を表す整数値ではありません。The baseUtcOffset parameter does not represent a whole number of minutes.

baseUtcOffset パラメーターが 14 時間を上回っているか、-14 時間を下回っています。The baseUtcOffset parameter is greater than 14 hours or less than -14 hours.

adjustmentRules パラメーターに指定された調整規則が重複しています。The adjustment rules specified in the adjustmentRules parameter overlap.

- または --or- adjustmentRules パラメーターに指定された調整規則が時系列順ではありません。The adjustment rules specified in the adjustmentRules parameter are not in chronological order.

- または --or- adjustmentRules の 1 つ以上の要素が null です。One or more elements in adjustmentRules are null.

- または --or- 適用可能な調整規則が複数ある日付があります。A date can have multiple adjustment rules applied to it.

- または --or- baseUtcOffset パラメーターと、adjustmentRules 配列内にある 1 つ以上のオブジェクトの DaylightDelta 値の合計が、14 時間を上回っているか、-14 時間を下回っています。The sum of the baseUtcOffset parameter and the DaylightDelta value of one or more objects in the adjustmentRules array is greater than 14 hours or less than -14 hours.

次の例では、南極に、パーマー局および Anvers 島のカスタムタイムゾーンを作成します。The following example creates a custom time zone for the Palmer station and Anvers Island in Antarctica. 次に、現地時刻を新しいタイムゾーンの時刻に変換し、結果を表示します。It then converts the local time to the time in the new time zone and displays the result.

// Define transition times to/from DST
TimeZoneInfo.TransitionTime startTransition, endTransition;
startTransition = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1, 4, 0, 0), 
                                                                  10, 2, DayOfWeek.Sunday); 
endTransition = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1, 3, 0, 0), 
                                                                3, 2, DayOfWeek.Sunday);
// Define adjustment rule
TimeSpan delta = new TimeSpan(1, 0, 0);
TimeZoneInfo.AdjustmentRule adjustment;
adjustment = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(new DateTime(1999, 10, 1), DateTime.MaxValue.Date, delta, startTransition, endTransition);
// Create array for adjustment rules
TimeZoneInfo.AdjustmentRule[] adjustments = {adjustment};
// Define other custom time zone arguments
string displayName = "(GMT-04:00) Antarctica/Palmer Time";
string standardName = "Palmer Time";
string daylightName = "Palmer Daylight Time";
TimeSpan offset = new TimeSpan(-4, 0, 0);
TimeZoneInfo palmer = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName, daylightName, adjustments);
Console.WriteLine("The current time is {0} {1}",  
                  TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.Local, palmer), 
                  palmer.StandardName);
' Define transition times to/from DST
Dim startTransition As TimeZoneInfo.TransitionTime = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#04:00:00#, 10, 2, DayOfWeek.Sunday) 
Dim endTransition As TimeZoneInfo.TransitionTime = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#3:00:00#, 3, 2, DayOfWeek.Sunday)
' Define adjustment rule
Dim delta As TimeSpan = New TimeSpan(1, 0, 0)
Dim adjustment As TimeZoneInfo.AdjustmentRule = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(#10/01/1999#, Date.MaxValue.Date, delta, startTransition, endTransition)
' Create array for adjustment rules
Dim adjustments() As TimeZoneInfo.AdjustmentRule = {adjustment}
' Define other custom time zone arguments
Dim DisplayName As String = "(GMT-04:00) Antarctica/Palmer Time"
Dim standardName As String = "Palmer Standard Time"
Dim daylightName As String = "Palmer Daylight Time"
Dim offset As TimeSpan = New TimeSpan(-4, 0, 0)
Dim palmer As TimeZoneInfo = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName, daylightName, adjustments)
Console.WriteLine("The current time is {0} {1}", _ 
                  TimeZoneInfo.ConvertTime(Date.Now, TimeZoneInfo.Local, palmer), _
                  palmer.StandardName)

注釈

TimeZoneInfo.CreateCustomTimeZone メソッドのこのオーバーロードは、夏時間をサポートするタイムゾーンを作成するのに適しています。This overload of the TimeZoneInfo.CreateCustomTimeZone method is suitable for creating a time zone that supports daylight saving time. 夏時間をサポートしていないタイムゾーンを定義するには、TimeZoneInfo.CreateCustomTimeZone または TimeZoneInfo.CreateCustomTimeZone のいずれかの方法を使用します。To define a time zone that does not support daylight saving time, use either the TimeZoneInfo.CreateCustomTimeZone or the TimeZoneInfo.CreateCustomTimeZone method.

次の表は、TimeZoneInfo.CreateCustomTimeZone メソッドに提供されるパラメーターと、メソッド呼び出しによって返される TimeZoneInfo オブジェクトのメンバーとの関係を示しています。The following table shows the relationship between the parameters that are provided to the TimeZoneInfo.CreateCustomTimeZone method and the members of the TimeZoneInfo object that are returned by the method call.

CreateCustomTimeZone パラメーターCreateCustomTimeZone parameter TimeZoneInfo メンバーTimeZoneInfo member
id Id
baseUtcOffset BaseUtcOffset
displayName DisplayName
standardDisplayName StandardName
daylightDisplayName DaylightName
adjustmentRules GetAdjustmentRules メソッドによって返される System.TimeZoneInfo.AdjustmentRule オブジェクトの配列。An array of System.TimeZoneInfo.AdjustmentRule objects returned by the GetAdjustmentRules method.

通常、タイムゾーンの標準時名とその識別子は同じです。Typically, the time zone's standard time name and its identifier are the same. ただし、タイムゾーンの識別子の長さは32文字を超えないようにする必要があります。However, the length of the time zone's identifier should not exceed 32 characters. displayName パラメーターに渡された文字列は、かなり標準的な形式に従います。The string passed to the displayName parameter follows a fairly standard format. 表示名の最初の部分は、協定世界時からのタイムゾーンのベースオフセットです。これは、かっこで囲まれた GMT (グリニッジ標準時) で表されます。The first portion of the display name is the time zone's base offset from Coordinated Universal Time, which is indicated by the acronym GMT (for Greenwich Mean Time), enclosed in parentheses. この後には、タイムゾーン自体、またはタイムゾーン内の1つ以上の都市、地域、または国を識別する文字列、またはその両方が続きます。This is followed by a string that identifies the time zone itself, or one or more of the cities, regions, or countries in the time zone, or both. 次に例を示します。For example:

(GMT+02:00) Athens, Beirut, Istanbul, Minsk  
(GMT-02:00) Mid-Atlantic  
(GMT-07:00) Mountain Time (US & Canada)  

baseUtcOffset パラメーターは、すべてのタイムゾーンの調整規則について、世界協定時刻 (UTC) からのカスタムタイムゾーンのオフセットを定義します。The baseUtcOffset parameter defines the custom time zone's offset from Coordinated Universal Time (UTC) for all of the time zone's adjustment rules. 言い換えると、TimeZoneInfo オブジェクトモデルは、タイムゾーンの UTC からのオフセットがタイムゾーンの有効期間全体にわたって一定であると想定し、特定の調整規則とは独立して存在します。In other words, the TimeZoneInfo object model assumes that the time zone's offset from UTC is constant throughout the life of the time zone, and exists independent of particular adjustment rules. UTC からのオフセットを変更したタイムゾーンを反映するには、新しいタイムゾーンオブジェクトを作成する必要があります。To reflect a time zone that has changed its offset from UTC, you must create a new time zone object.

タイムゾーンの調整規則を定義するには、次の手順を実行します。A time zone's adjustment rules are defined by doing the following:

  1. CreateFloatingDateRule または CreateFixedDateRule のいずれかのメソッドを呼び出して、各調整規則の開始と終了の切り替え時間を定義します。Calling either the CreateFloatingDateRule or the CreateFixedDateRule method to define the starting and ending transition time for each adjustment rule.

  2. 各調整規則に対して CreateAdjustmentRule メソッドを呼び出します。Calling the CreateAdjustmentRule method for each adjustment rule.

  3. adjustmentRules パラメーターとして渡すことができる配列に調整規則を割り当てます。Assigning the adjustment rules to an array that can be passed as the adjustmentRules parameter.

こちらもご覧ください

CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[], Boolean)

指定された ID、世界協定時刻 (UTC) からのオフセット、表示名、標準時名、夏時間名、夏時間規則、および返されるオブジェクトに夏時間情報を反映するかどうかを示す値を使用して、カスタム タイム ゾーンを作成します。Creates a custom time zone with a specified identifier, an offset from Coordinated Universal Time (UTC), a display name, a standard time name, a daylight saving time name, daylight saving time rules, and a value that indicates whether the returned object reflects daylight saving time information.

public:
 static TimeZoneInfo ^ CreateCustomTimeZone(System::String ^ id, TimeSpan baseUtcOffset, System::String ^ displayName, System::String ^ standardDisplayName, System::String ^ daylightDisplayName, cli::array <TimeZoneInfo::AdjustmentRule ^> ^ adjustmentRules, bool disableDaylightSavingTime);
public static TimeZoneInfo CreateCustomTimeZone (string id, TimeSpan baseUtcOffset, string displayName, string standardDisplayName, string daylightDisplayName, TimeZoneInfo.AdjustmentRule[] adjustmentRules, bool disableDaylightSavingTime);
static member CreateCustomTimeZone : string * TimeSpan * string * string * string * TimeZoneInfo.AdjustmentRule[] * bool -> TimeZoneInfo
Public Shared Function CreateCustomTimeZone (id As String, baseUtcOffset As TimeSpan, displayName As String, standardDisplayName As String, daylightDisplayName As String, adjustmentRules As TimeZoneInfo.AdjustmentRule(), disableDaylightSavingTime As Boolean) As TimeZoneInfo

パラメーター

id
String

タイム ゾーン ID。The time zone's identifier.

baseUtcOffset
TimeSpan

現在のタイム ゾーンの標準時と世界協定時刻 (UTC) との時差を表す TimeSpan オブジェクト。A TimeSpan object that represents the time difference between this time zone and Coordinated Universal Time (UTC).

displayName
String

新しいタイム ゾーンの表示名。The display name of the new time zone.

standardDisplayName
String

新しいタイム ゾーンの標準時名。The standard time name of the new time zone.

daylightDisplayName
String

新しいタイム ゾーンの夏時間名。The daylight saving time name of the new time zone.

adjustmentRules
TimeZoneInfo.AdjustmentRule[]

特定の期間のベース UTC オフセットを増やす TimeZoneInfo.AdjustmentRule オブジェクトの配列。An array of TimeZoneInfo.AdjustmentRule objects that augment the base UTC offset for a particular period.

disableDaylightSavingTime
Boolean

新しいオブジェクトの adjustmentRules に含まれている夏時間関連の情報をすべて破棄する場合は true。それ以外の場合は falsetrue to discard any daylight saving time-related information present in adjustmentRules with the new object; otherwise, false.

戻り値

新しいタイム ゾーン。The new time zone. disableDaylightSavingTime パラメーターが true の場合、返されるオブジェクトに夏時間データはありません。If the disableDaylightSavingTime parameter is true, the returned object has no daylight saving time data.

例外

id パラメーターが null です。The id parameter is null.

id パラメーターが空の文字列 ("") です。The id parameter is an empty string ("").

- または --or- baseUtcOffset パラメーターが、分を表す整数値ではありません。The baseUtcOffset parameter does not represent a whole number of minutes.

baseUtcOffset パラメーターが 14 時間を上回っているか、-14 時間を下回っています。The baseUtcOffset parameter is greater than 14 hours or less than -14 hours.

adjustmentRules パラメーターに指定された調整規則が重複しています。The adjustment rules specified in the adjustmentRules parameter overlap.

- または --or- adjustmentRules パラメーターに指定された調整規則が時系列順ではありません。The adjustment rules specified in the adjustmentRules parameter are not in chronological order.

- または --or- adjustmentRules の 1 つ以上の要素が null です。One or more elements in adjustmentRules are null.

- または --or- 適用可能な調整規則が複数ある日付があります。A date can have multiple adjustment rules applied to it.

- または --or- baseUtcOffset パラメーターと、adjustmentRules 配列内にある 1 つ以上のオブジェクトの DaylightDelta 値の合計が、14 時間を上回っているか、-14 時間を下回っています。The sum of the baseUtcOffset parameter and the DaylightDelta value of one or more objects in the adjustmentRules array is greater than 14 hours or less than -14 hours.

次の例では、南極に、パーマー局および Anvers 島のカスタムタイムゾーンを作成します。The following example creates a custom time zone for the Palmer station and Anvers Island in Antarctica. TimeZoneInfo.CreateCustomTimeZone メソッドの呼び出しで disableDaylightSavingTime パラメーターを trueに設定します。It sets the disableDaylightSavingTime parameter in the call to the TimeZoneInfo.CreateCustomTimeZone method to true. 次に、新しいタイムゾーンの夏時間名 (存在する場合) と、新しいタイムゾーンに夏時間情報がないことを確認する調整規則の数を表示します。It then displays the new time zone's daylight saving time name, if one is present, and the number of adjustment rules to confirm that the new time zone has no daylight saving time information.

// Define transition times to/from DST
TimeZoneInfo.TransitionTime startTransition, endTransition;
startTransition = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1, 4, 0, 0),
                                                                  10, 2, DayOfWeek.Sunday); 
endTransition = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1,3, 0, 0), 
                                                                3, 2, DayOfWeek.Sunday);
// Define adjustment rule
TimeSpan delta = new TimeSpan(1, 0, 0);
TimeZoneInfo.AdjustmentRule adjustment = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(new DateTime(1999, 10, 1), 
                                      DateTime.MaxValue.Date, delta, startTransition, endTransition);
// Create array for adjustment rules
TimeZoneInfo.AdjustmentRule[] adjustments = {adjustment};
// Define other custom time zone arguments
string displayName = "(GMT-04:00) Antarctica/Palmer Time";
string standardName = "Palmer Standard Time";
string daylightName = "Palmer Daylight Time";
TimeSpan offset = new TimeSpan(-4, 0, 0);
// Create custom time zone without copying DST information
TimeZoneInfo palmer = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName, 
                                                  daylightName, adjustments, true);
// Indicate whether new time zone//s adjustment rules are present
Console.WriteLine("{0} {1}has {2} adjustment rules.", 
                  palmer.StandardName, 
                  ! (string.IsNullOrEmpty(palmer.DaylightName)) ?  "(" + palmer.DaylightName + ") ": "" , 
                  palmer.GetAdjustmentRules().Length);
// Indicate whether new time zone supports DST
Console.WriteLine("{0} supports DST: {1}", palmer.StandardName, palmer.SupportsDaylightSavingTime);
' Define transition times to/from DST
Dim startTransition As TimeZoneInfo.TransitionTime = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#04:00:00#, 10, 2, DayOfWeek.Sunday) 
Dim endTransition As TimeZoneInfo.TransitionTime = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#3:00:00#, 3, 2, DayOfWeek.Sunday)
' Define adjustment rule
Dim delta As TimeSpan = New TimeSpan(1, 0, 0)
Dim adjustment As TimeZoneInfo.AdjustmentRule = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(#10/01/1999#, Date.MaxValue.Date, delta, startTransition, endTransition)
' Create array for adjustment rules
Dim adjustments() As TimeZoneInfo.AdjustmentRule = {adjustment}
' Define other custom time zone arguments
Dim displayName As String = "(GMT-04:00) Antarctica/Palmer Time"
Dim standardName As String = "Palmer Standard Time"
Dim daylightName As String = "Palmer Daylight Time"
Dim offset As TimeSpan = New TimeSpan(-4, 0, 0)
Dim palmer As TimeZoneInfo = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName, daylightName, adjustments, True)
' Indicate whether new time zone's adjustment rules are present
Console.WriteLine("{0} {1}has {2} adjustment rules.", _
                  palmer.StandardName, _
                  IIf(Not String.IsNullOrEmpty(palmer.DaylightName), "(" & palmer.DaylightName & ") ", ""), _
                  palmer.GetAdjustmentRules().Length)
' Indicate whether new time zone supports DST
Console.WriteLine("{0} supports DST: {1}", palmer.StandardName, palmer.SupportsDaylightSavingTime)

注釈

TimeZoneInfo.CreateCustomTimeZone メソッドのこのオーバーロードを使用して、実行時の条件によって夏時間をサポートするカスタムタイムゾーンを作成できます。You can use this overload of the TimeZoneInfo.CreateCustomTimeZone method to create a custom time zone whose support for daylight saving time can be determined by conditions at run time.

次の表は、TimeZoneInfo.CreateCustomTimeZone メソッドに提供されるパラメーターと、メソッド呼び出しによって返される TimeZoneInfo オブジェクトのメンバーとの関係を示しています。The following table shows the relationship between the parameters that are provided to the TimeZoneInfo.CreateCustomTimeZone method and the members of the TimeZoneInfo object that are returned by the method call.

CreateCustomTimeZone パラメーターCreateCustomTimeZone parameter TimeZoneInfo プロパティTimeZoneInfo property
id Id
baseUtcOffset BaseUtcOffset
displayName DisplayName
standardDisplayName StandardName
daylightDisplayName disableDaylightSavingTimefalse場合に DaylightName します。disableDaylightSavingTimetrue場合は String.Empty します。DaylightName if disableDaylightSavingTime is false; String.Empty if disableDaylightSavingTime is true.
adjustmentRules disableDaylightSavingTimefalseの場合に GetAdjustmentRules メソッドによって返される TimeZoneInfo.AdjustmentRule オブジェクトの配列。disableDaylightSavingTimetrue場合は、GetAdjustmentRules メソッドによって返される空の配列。An array of TimeZoneInfo.AdjustmentRule objects returned by the GetAdjustmentRules method if disableDaylightSavingTime is false; an empty array returned by the GetAdjustmentRules method if disableDaylightSavingTime is true.
disableDaylightSavingTime SupportsDaylightSavingTimeません。Not SupportsDaylightSavingTime.

通常、タイムゾーンの標準時名とその識別子は同じです。Typically, the time zone's standard time name and its identifier are the same. ただし、タイムゾーンの識別子の長さは32文字を超えないようにする必要があります。However, the length of the time zone's identifier should not exceed 32 characters. displayName パラメーターに渡された文字列は、かなり標準的な形式に従います。The string passed to the displayName parameter follows a fairly standard format. 表示名の最初の部分は、協定世界時からのタイムゾーンのベースオフセットです。これは、かっこで囲まれた GMT (グリニッジ標準時) で表されます。The first portion of the display name is the time zone's base offset from Coordinated Universal Time, which is indicated by the acronym GMT (for Greenwich Mean Time), enclosed in parentheses. この後には、タイムゾーン自体、またはタイムゾーン内の1つ以上の都市、地域、または国を識別する文字列、またはその両方が続きます。This is followed by a string that identifies the time zone itself, or one or more of the cities, regions, or countries in the time zone, or both. 次に例を示します。For example:

(GMT+02:00) Athens, Beirut, Istanbul, Minsk  
(GMT-02:00) Mid-Atlantic  
(GMT-07:00) Mountain Time (US & Canada)  

タイムゾーンの調整規則を定義するには、次の手順を実行します。A time zone's adjustment rules are defined by doing the following:

  1. CreateFloatingDateRule または CreateFixedDateRule のいずれかのメソッドを呼び出して、各調整規則の開始および終了の遷移規則を定義します。Calling either the CreateFloatingDateRule or the CreateFixedDateRule method to define the starting and ending transition rules for each adjustment rule.

  2. 各調整規則に対して CreateAdjustmentRule メソッドを呼び出します。Calling the CreateAdjustmentRule method for each adjustment rule.

  3. adjustmentRules パラメーターとして渡すことができる配列に調整規則を割り当てます。Assigning the adjustment rules to an array that can be passed as the adjustmentRules parameter.

disableDaylightSavingTime パラメーターが falseの場合、このメソッドの操作は TimeZoneInfo.CreateCustomTimeZone オーバーロードと同じになります。If disableDaylightSavingTime parameter is false, the operation of this method is identical to the TimeZoneInfo.CreateCustomTimeZone overload. disableDaylightSavingTimetrue場合、返されるオブジェクトには、調整規則と、値が空の文字列である DaylightName プロパティは含まれません。If disableDaylightSavingTime is true, the returned object includes no adjustment rules and a DaylightName property whose value is an empty string.

こちらもご覧ください

適用対象