TimeZoneInfo.CreateCustomTimeZone メソッド

定義

ローカル コンピューターにないタイム ゾーンを定義します。

オーバーロード

CreateCustomTimeZone(String, TimeSpan, String, String)

指定された ID、世界協定時刻 (UTC) からのオフセット、表示名、および標準時の表示名を使用して、カスタム タイム ゾーンを作成します。

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

指定された ID、世界協定時刻 (UTC) からのオフセット、表示名、標準時名、夏時間名、および夏時間規則を使用して、カスタム タイム ゾーンを作成します。

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

指定された ID、世界協定時刻 (UTC) からのオフセット、表示名、標準時名、夏時間名、夏時間規則、および返されるオブジェクトに夏時間情報を反映するかどうかを示す値を使用して、カスタム タイム ゾーンを作成します。

CreateCustomTimeZone(String, TimeSpan, String, String)

指定された ID、世界協定時刻 (UTC) からのオフセット、表示名、および標準時の表示名を使用して、カスタム タイム ゾーンを作成します。

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);
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。

baseUtcOffset
TimeSpan

このタイム ゾーンの標準時と世界協定時刻 (UTC) との時差を表すオブジェクト。

displayName
String

新しいタイム ゾーンの表示名。

standardDisplayName
String

新しいタイム ゾーンの標準時名。

戻り値

TimeZoneInfo

新しいタイム ゾーン。

例外

id パラメーターが null です。

id パラメーターが空の文字列 ("") です。

  • または - baseUtcOffset パラメーターが、分を表す整数値ではありません。

baseUtcOffset パラメーターが 14 時間を上回っているか、-14 時間を下回っています。

次の例では、南極の Mawson および Holme Bay リージョンのカスタム タイム ゾーンを作成します。 次に、ローカル時刻を新しいタイム ゾーンの時刻に変換した結果が表示されます。

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) する場合に適しています。 夏時間の調整を含むタイム ゾーンを定義するには、 メソッドまたは TimeZoneInfo.CreateCustomTimeZone メソッドを使用 TimeZoneInfo.CreateCustomTimeZone します。

次の表は、 メソッドに提供されるパラメーターと、メソッド呼び出しによって返される オブジェクトのプロパティとの関係 TimeZoneInfo.CreateCustomTimeZone TimeZoneInfo を示しています。

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

通常、タイム ゾーンの標準時刻名とその識別子は同じです。 ただし、タイム ゾーンの識別子の長さは 32 文字を超えないようにしてください。 パラメーターに渡される文字列 displayName は、かなり標準的な形式に従います。 表示名の最初の部分は、タイム ゾーンの 協定世界時 からのベース オフセットです。これは、頭字語 GMT (グリニッジ標準時) でかっこで囲んで示されます。 その後に、タイム ゾーン自体、またはタイム ゾーン内の 1 つ以上の都市、地域、または国、または両方を識別する文字列が続きます。 次に例を示します。

(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) からのオフセット、表示名、標準時名、夏時間名、および夏時間規則を使用して、カスタム タイム ゾーンを作成します。

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);
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。

baseUtcOffset
TimeSpan

このタイム ゾーンの標準時と世界協定時刻 (UTC) との時差を表すオブジェクト。

displayName
String

新しいタイム ゾーンの表示名。

standardDisplayName
String

新しいタイム ゾーンの標準時名。

daylightDisplayName
String

新しいタイム ゾーンの夏時間名。

adjustmentRules
TimeZoneInfo.AdjustmentRule[]

特定の期間のベース UTC オフセットを増やす配列。

戻り値

TimeZoneInfo

新しいタイム ゾーンを表す TimeZoneInfo オブジェクト。

例外

id パラメーターが null です。

id パラメーターが空の文字列 ("") です。

  • または - baseUtcOffset パラメーターが、分を表す整数値ではありません。

baseUtcOffset パラメーターが 14 時間を上回っているか、-14 時間を下回っています。

adjustmentRules パラメーターに指定された調整規則が重複しています。

  • または - adjustmentRules パラメーターに指定された調整規則が時系列順ではありません。

  • または - adjustmentRules の 1 つ以上の要素が null です。

  • または - 複数の調整規則を適用できる日付があります。

  • または - baseUtcOffset パラメーターと、adjustmentRules 配列内にある 1 つ以上のオブジェクトの DaylightDelta 値の合計が、14 時間を上回っているか、-14 時間を下回っています。

次の例では、南極のパーマーステーションと Anvers Island のカスタム タイム ゾーンを作成します。 次に、ローカル時刻を新しいタイム ゾーンの時刻に変換し、結果を表示します。

// 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 は、夏時間をサポートするタイム ゾーンを作成する場合に適しています。 夏時間をサポートしていないタイム ゾーンを定義するには、 メソッドまたは TimeZoneInfo.CreateCustomTimeZone メソッドを使用 TimeZoneInfo.CreateCustomTimeZone します。

次の表は、 メソッドに提供されるパラメーターと、メソッド呼び出しによって返される オブジェクトのメンバーとの関係 TimeZoneInfo.CreateCustomTimeZone TimeZoneInfo を示しています。

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

通常、タイム ゾーンの標準時刻名とその識別子は同じです。 ただし、タイム ゾーンの識別子の長さは 32 文字を超えないようにしてください。 パラメーターに渡される文字列 displayName は、かなり標準的な形式に従います。 表示名の最初の部分は、タイム ゾーンの 協定世界時 からのベース オフセットです。これは、頭字語 GMT (グリニッジ標準時) でかっこで囲んで示されます。 その後に、タイム ゾーン自体、またはタイム ゾーン内の 1 つ以上の都市、地域、または国、または両方を識別する文字列が続きます。 次に例を示します。

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

パラメーターは、すべてのタイム ゾーンの調整規則のカスタム タイム 協定世界時 baseUtcOffset (UTC) からのオフセットを定義します。 言い換えると、オブジェクト モデルは、UTC からのタイム ゾーンのオフセットがタイム ゾーンの寿命を通して一定であり、特定の調整規則とは独立して存在することを TimeZoneInfo 前提とします。 UTC からのオフセットを変更したタイム ゾーンを反映するには、新しいタイム ゾーン オブジェクトを作成する必要があります。

タイム ゾーンの調整規則は、次の手順を実行して定義します。

  1. または メソッドを呼び出して、各調整規則の開始切り替え時刻と終了 CreateFloatingDateRule CreateFixedDateRule 遷移時間を定義します。

  2. 調整規則ごとに CreateAdjustmentRule メソッドを呼び出します。

  3. パラメーターとして渡す配列に調整規則を割り当 adjustmentRules てる。

こちらもご覧ください

適用対象

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

指定された ID、世界協定時刻 (UTC) からのオフセット、表示名、標準時名、夏時間名、夏時間規則、および返されるオブジェクトに夏時間情報を反映するかどうかを示す値を使用して、カスタム タイム ゾーンを作成します。

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);
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。

baseUtcOffset
TimeSpan

現在のタイム ゾーンの標準時と世界協定時刻 (UTC) との時差を表す TimeSpan オブジェクト。

displayName
String

新しいタイム ゾーンの表示名。

standardDisplayName
String

新しいタイム ゾーンの標準時名。

daylightDisplayName
String

新しいタイム ゾーンの夏時間名。

adjustmentRules
TimeZoneInfo.AdjustmentRule[]

特定の期間のベース UTC オフセットを増やす TimeZoneInfo.AdjustmentRule オブジェクトの配列。

disableDaylightSavingTime
Boolean

新しいオブジェクトの adjustmentRules に含まれている夏時間関連の情報をすべて破棄する場合は true。それ以外の場合は false

戻り値

TimeZoneInfo

新しいタイム ゾーン。 disableDaylightSavingTime パラメーターが true の場合、返されるオブジェクトに夏時間データはありません。

例外

id パラメーターが null です。

id パラメーターが空の文字列 ("") です。

  • または - baseUtcOffset パラメーターが、分を表す整数値ではありません。

baseUtcOffset パラメーターが 14 時間を上回っているか、-14 時間を下回っています。

adjustmentRules パラメーターに指定された調整規則が重複しています。

  • または - adjustmentRules パラメーターに指定された調整規則が時系列順ではありません。

  • または - adjustmentRules の 1 つ以上の要素が null です。

  • または - 複数の調整規則を適用できる日付があります。

  • または - baseUtcOffset パラメーターと、adjustmentRules 配列内にある 1 つ以上のオブジェクトの DaylightDelta 値の合計が、14 時間を上回っているか、-14 時間を下回っています。

次の例では、南極のパーマーステーションと Anvers Island のカスタム タイム ゾーンを作成します。 メソッドの呼 disableDaylightSavingTime び出しの パラメーターを に TimeZoneInfo.CreateCustomTimeZone 設定します true 。 次に、新しいタイム ゾーンの夏時間名 (存在する場合) と調整規則の数が表示され、新しいタイム ゾーンに夏時間情報が存在しない確認が行います。

// 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 を作成できます。

次の表は、 メソッドに提供されるパラメーターと、メソッド呼び出しによって返される オブジェクトのメンバーとの関係 TimeZoneInfo.CreateCustomTimeZone TimeZoneInfo を示しています。

CreateCustomTimeZone パラメーター TimeZoneInfo プロパティ
id Id
baseUtcOffset BaseUtcOffset
displayName DisplayName
standardDisplayName StandardName
daylightDisplayName DaylightNamedisableDaylightSavingTime の場合 false は 。が String.EmptydisableDaylightSavingTime 場合は true
adjustmentRules が の場合、メソッドによって返されるオブジェクトの配列。が の場合は、メソッドによって TimeZoneInfo.AdjustmentRule GetAdjustmentRules disableDaylightSavingTime false GetAdjustmentRules 返される空の disableDaylightSavingTime 配列 true
disableDaylightSavingTime ではありません SupportsDaylightSavingTime

通常、タイム ゾーンの標準時刻名とその識別子は同じです。 ただし、タイム ゾーンの識別子の長さは 32 文字を超えないようにしてください。 パラメーターに渡される文字列 displayName は、かなり標準的な形式に従います。 表示名の最初の部分は、タイム ゾーンの 協定世界時 からのベース オフセットです。これは、頭字語 GMT (グリニッジ標準時) でかっこで囲んで示されます。 その後に、タイム ゾーン自体、またはタイム ゾーン内の 1 つ以上の都市、地域、または国、または両方を識別する文字列が続きます。 次に例を示します。

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

タイム ゾーンの調整規則は、次の手順を実行して定義します。

  1. または メソッドを CreateFloatingDateRule 呼び出して、各調整規則の開始および終了 CreateFixedDateRule 遷移規則を定義します。

  2. 調整規則ごとに CreateAdjustmentRule メソッドを呼び出します。

  3. パラメーターとして渡す配列に調整規則を割り当 adjustmentRules てる。

パラメーター disableDaylightSavingTime が の false 場合、このメソッドの操作はオーバーロードと同 TimeZoneInfo.CreateCustomTimeZone じです。 が disableDaylightSavingTime の場合、返されるオブジェクトには調整規則と、値が空の文字列である true DaylightName プロパティが含まれます。

こちらもご覧ください

適用対象