Поделиться через


TimeZoneInfo.CreateCustomTimeZone Метод

Определение

Определяет часовой пояс, который не найден на локальном компьютере.

Перегрузки

Имя Описание
CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[], Boolean)

Создает пользовательский часовой пояс с указанным идентификатором, смещением от координированного универсального времени (UTC), отображаемого имени, стандартного имени времени, имени летнего времени, правил летнего времени и значения, указывающего, отражает ли возвращаемый объект сведения о времени летнего времени.

CreateCustomTimeZone(String, TimeSpan, String, String)

Создает пользовательский часовой пояс с указанным идентификатором, смещением от координированного универсального времени (UTC), отображаемого имени и стандартного отображаемого имени времени.

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

Создает настраиваемый часовой пояс с заданным идентификатором, смещением от координированного универсального времени (UTC), отображаемого имени, стандартного имени времени, имени летнего времени и правил летнего времени.

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

Исходный код:
TimeZoneInfo.cs
Исходный код:
TimeZoneInfo.cs
Исходный код:
TimeZoneInfo.cs
Исходный код:
TimeZoneInfo.cs
Исходный код:
TimeZoneInfo.cs

Создает пользовательский часовой пояс с указанным идентификатором, смещением от координированного универсального времени (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

Идентификатор часового пояса.

baseUtcOffset
TimeSpan

Объект TimeSpan , представляющий разницу времени между этим часовом поясом и универсальным временем (UTC).

displayName
String

Отображаемое имя нового часового пояса.

standardDisplayName
String

Стандартное имя часового пояса нового часового пояса.

daylightDisplayName
String

Имя нового часового пояса.

adjustmentRules
TimeZoneInfo.AdjustmentRule[]

Массив TimeZoneInfo.AdjustmentRule объектов, расширяющих базовое смещение в формате UTC за определенный период.

disableDaylightSavingTime
Boolean

true Значение , чтобы отменить любые сведения adjustmentRules , связанные с временем, связанные с новым объектом; в противном случае false.

Возвращаемое значение

Новый часовой пояс. Если параметр имеет значениеtrue, возвращаемый disableDaylightSavingTime объект не имеет данных о летнем времени.

Исключения

Параметр id имеет значение null.

Параметр id является пустой строкой ("").

–или–

Параметр baseUtcOffset не представляет целое количество минут.

Параметр baseUtcOffset превышает 14 часов или меньше -14 часов.

Правила корректировки, указанные в параметре adjustmentRules , перекрываются.

–или–

Правила корректировки, указанные в параметре adjustmentRules , не находятся в хронологическом порядке.

–или–

Одним или несколькими элементами являются adjustmentRulesnull.

–или–

К дате может применяться несколько правил корректировки.

–или–

baseUtcOffset Сумма параметра и DaylightDelta значение одного или нескольких объектов в adjustmentRules массиве превышает 14 часов или меньше -14 часов.

Примеры

В следующем примере создается настраиваемый часовой пояс для станции Палмера и острова Анверс в Антарктиде. Он задает 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
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Значение falseString.Empty, если disableDaylightSavingTimedisableDaylightSavingTime имеет значение true.
adjustmentRules Массив объектов, возвращаемых методом disableDaylightSavingTimeGetAdjustmentRules, если имеет значениеfalse; пустой массивTimeZoneInfo.AdjustmentRule, возвращаемый GetAdjustmentRules методом, если disableDaylightSavingTime естьtrue.
disableDaylightSavingTime Нет SupportsDaylightSavingTime.

Как правило, стандартное имя часового пояса и его идентификатор совпадают. Однако длина идентификатора часового пояса не должна превышать 32 символов. Строка, переданная параметру displayName , соответствует довольно стандартному формату. Первая часть отображаемого имени — это базовое смещение часового пояса от согласованного универсального времени, которое указывается акронимом GMT (для среднего времени Гринвича), заключенного в скобки. За этим следует строка, которая определяет сам часовой пояс или один или несколько городов, регионов или стран часового пояса или обоих. Рассмотрим пример.

(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 параметра.

Если disableDaylightSavingTime параметр имеет значение false, операция этого метода идентична перегрузке TimeZoneInfo.CreateCustomTimeZone . Если disableDaylightSavingTime это trueтак, возвращаемый объект не содержит правил корректировки и DaylightName свойства, значение которого является пустой строкой.

См. также раздел

Применяется к

CreateCustomTimeZone(String, TimeSpan, String, String)

Исходный код:
TimeZoneInfo.cs
Исходный код:
TimeZoneInfo.cs
Исходный код:
TimeZoneInfo.cs
Исходный код:
TimeZoneInfo.cs
Исходный код:
TimeZoneInfo.cs

Создает пользовательский часовой пояс с указанным идентификатором, смещением от координированного универсального времени (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

Идентификатор часового пояса.

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 (для среднего времени Гринвича), заключенного в скобки. За этим следует строка, которая определяет сам часовой пояс или один или несколько городов, регионов или стран часового пояса или обоих. Рассмотрим пример.

(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
Исходный код:
TimeZoneInfo.cs
Исходный код:
TimeZoneInfo.cs

Создает настраиваемый часовой пояс с заданным идентификатором, смещением от координированного универсального времени (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

Идентификатор часового пояса.

baseUtcOffset
TimeSpan

Объект, представляющий разницу времени между этим часовым поясом и согласованным универсальным временем (UTC).

displayName
String

Отображаемое имя нового часового пояса.

standardDisplayName
String

Стандартное имя часового пояса.

daylightDisplayName
String

Имя нового часового пояса.

adjustmentRules
TimeZoneInfo.AdjustmentRule[]

Массив, расширяющий базовое смещение в формате UTC за определенный период.

Возвращаемое значение

Объект TimeZoneInfo , представляющий новый часовой пояс.

Исключения

Параметр id имеет значение null.

Параметр id является пустой строкой ("").

–или–

Параметр baseUtcOffset не представляет целое количество минут.

Параметр baseUtcOffset превышает 14 часов или меньше -14 часов.

Правила корректировки, указанные в параметре adjustmentRules , перекрываются.

–или–

Правила корректировки, указанные в параметре adjustmentRules , не находятся в хронологическом порядке.

–или–

Одним или несколькими элементами являются adjustmentRulesnull.

–или–

К дате может применяться несколько правил корректировки.

–или–

baseUtcOffset Сумма параметра и DaylightDelta значение одного или нескольких объектов в adjustmentRules массиве превышает 14 часов или меньше -14 часов.

Примеры

В следующем примере создается настраиваемый часовой пояс для станции Палмера и острова Анверс в Антарктиде. Затем он преобразует локальное время в время в новом часовом поясе и отображает результат.

// 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.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 (для среднего времени Гринвича), заключенного в скобки. За этим следует строка, которая определяет сам часовой пояс или один или несколько городов, регионов или стран часового пояса или обоих. Рассмотрим пример.

(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 параметра.

См. также раздел

Применяется к