TimeZoneInfo.CreateCustomTimeZone メソッド

定義

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

オーバーロード

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

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

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)

ソース:
TimeZoneInfo.cs
ソース:
TimeZoneInfo.cs
ソース:
TimeZoneInfo.cs

指定された 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

戻り値

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

例外

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

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

- または -

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

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

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

- または -

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

- または -

adjustmentRules の 1 つ以上の要素が null です。

- または -

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

- または -

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

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

// 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
let startTransition = 
    TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1, 4, 0, 0), 10, 2, DayOfWeek.Sunday) 
let endTransition = 
    TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1,3, 0, 0), 3, 2, DayOfWeek.Sunday)
// Define adjustment rule
let delta = TimeSpan(1, 0, 0)
let adjustment = 
    TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(DateTime(1999, 10, 1), DateTime.MaxValue.Date, delta, startTransition, endTransition)
// Create array for adjustment rules
let adjustments = [| adjustment |]
// Define other custom time zone arguments
let displayName = "(GMT-04:00) Antarctica/Palmer Time"
let standardName = "Palmer Standard Time"
let daylightName = "Palmer Daylight Time"
let offset = TimeSpan(-4, 0, 0)
// Create custom time zone without copying DST information
let palmer = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName, daylightName, adjustments, true)
// Indicate whether time zone//s adjustment rules are present
printfn $"""{palmer.StandardName} {if String.IsNullOrEmpty palmer.DaylightName then "" else "(" + palmer.DaylightName + ")"}has {palmer.GetAdjustmentRules().Length} adjustment rules."""
// Indicate whether time zone supports DST
printfn $"{palmer.StandardName} supports DST: {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 DaylightName が の場合 disableDaylightSavingTimefalseString.Empty が の場合 disableDaylightSavingTimetrue
adjustmentRules が の場合は メソッドによって返されるオブジェクトのTimeZoneInfo.AdjustmentRuleGetAdjustmentRules配列。が falseの場合disableDaylightSavingTimetruedisableDaylightSavingTimeは、 メソッドによって返される空のGetAdjustmentRules配列。
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. または メソッドをCreateFloatingDateRuleCreateFixedDateRule呼び出して、各調整規則の開始および終了遷移規則を定義します。

  2. 各調整規則の CreateAdjustmentRule メソッドを呼び出します。

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

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

こちらもご覧ください

適用対象

CreateCustomTimeZone(String, TimeSpan, String, String)

ソース:
TimeZoneInfo.cs
ソース:
TimeZoneInfo.cs
ソース:
TimeZoneInfo.cs

指定された 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

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

戻り値

新しいタイム ゾーン。

例外

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);
let displayName = "(GMT+06:00) Antarctica/Mawson Time"
let standardName = "Mawson Time" 
let offset = TimeSpan(06, 00, 00)
let mawson = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName)
printfn $"The current time is {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[])

ソース:
TimeZoneInfo.cs
ソース:
TimeZoneInfo.cs
ソース:
TimeZoneInfo.cs

指定された 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 オブジェクト。

例外

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

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

- または -

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

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

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

- または -

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

- または -

adjustmentRules の 1 つ以上の要素が null です。

- または -

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

- または -

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

次の例では、南極の Palmer ステーションと 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
let startTransition = 
    TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1, 4, 0, 0), 10, 2, DayOfWeek.Sunday) 
let endTransition = 
    TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1, 3, 0, 0), 3, 2, DayOfWeek.Sunday)
// Define adjustment rule
let delta = TimeSpan(1, 0, 0)
let adjustment = 
    TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(DateTime(1999, 10, 1), DateTime.MaxValue.Date, delta, startTransition, endTransition)
// Create array for adjustment rules
let adjustments = [| adjustment |]
// Define other custom time zone arguments
let displayName = "(GMT-04:00) Antarctica/Palmer Time"
let standardName = "Palmer Time"
let daylightName = "Palmer Daylight Time"
let offset = TimeSpan(-4, 0, 0)
let palmer = 
    TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName, daylightName, adjustments)
printfn $"The current time is {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.CreateCustomTimeZoneTimeZoneInfo.CreateCustomTimeZone使用します。

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

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

通常、タイム ゾーンの標準の時刻名とその識別子は同じです。 ただし、タイム ゾーンの識別子の長さは 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) からのカスタム タイム ゾーンのオフセットを定義します。 つまり、オブジェクト モデルは、 TimeZoneInfo タイム ゾーンの UTC からのオフセットがタイム ゾーンの有効期間中一定であり、特定の調整規則とは無関係に存在することを前提としています。 UTC からのオフセットを変更したタイム ゾーンを反映するには、新しいタイム ゾーン オブジェクトを作成する必要があります。

タイム ゾーンの調整規則は、次の手順に従って定義されます。

  1. または メソッドをCreateFloatingDateRuleCreateFixedDateRule呼び出して、各調整ルールの開始と終了の切り替え時間を定義します。

  2. 各調整規則の CreateAdjustmentRule メソッドを呼び出します。

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

こちらもご覧ください

適用対象