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)
- Исходный код:
- TimeZoneInfo.AdjustmentRule.cs
- Исходный код:
- TimeZoneInfo.AdjustmentRule.cs
- Исходный код:
- TimeZoneInfo.AdjustmentRule.cs
- Исходный код:
- TimeZoneInfo.AdjustmentRule.cs
- Исходный код:
- TimeZoneInfo.AdjustmentRule.cs
Создает новое правило корректировки для определенного часового пояса.
public:
static TimeZoneInfo::AdjustmentRule ^ CreateAdjustmentRule(DateTime dateStart, DateTime dateEnd, TimeSpan daylightDelta, TimeZoneInfo::TransitionTime daylightTransitionStart, TimeZoneInfo::TransitionTime daylightTransitionEnd);
public static TimeZoneInfo.AdjustmentRule CreateAdjustmentRule(DateTime dateStart, DateTime dateEnd, TimeSpan daylightDelta, TimeZoneInfo.TransitionTime daylightTransitionStart, TimeZoneInfo.TransitionTime daylightTransitionEnd);
static member CreateAdjustmentRule : DateTime * DateTime * TimeSpan * TimeZoneInfo.TransitionTime * TimeZoneInfo.TransitionTime -> TimeZoneInfo.AdjustmentRule
Public Shared Function CreateAdjustmentRule (dateStart As DateTime, dateEnd As DateTime, daylightDelta As TimeSpan, daylightTransitionStart As TimeZoneInfo.TransitionTime, daylightTransitionEnd As TimeZoneInfo.TransitionTime) As TimeZoneInfo.AdjustmentRule
Параметры
- dateStart
- DateTime
Дата действия правила корректировки. Если значение dateStart параметра имеет значение DateTime.MinValue.Date, это первое правило корректировки, которое действует для часового пояса.
- dateEnd
- DateTime
Последняя дата принудительного применения правила корректировки. Если значение параметра равноDateTime.MaxValue.Date, правило корректировки dateEnd не имеет даты окончания.
- daylightDelta
- TimeSpan
Изменение времени, которое приводит к корректировке. Это значение добавляется в свойство часового пояса BaseUtcOffset , чтобы получить правильное смещение дневного света из utc. Это значение может варьироваться от -14 до 14.
- daylightTransitionStart
- TimeZoneInfo.TransitionTime
Объект, определяющий начало летнего времени.
- daylightTransitionEnd
- TimeZoneInfo.TransitionTime
Объект, определяющий конец летнего времени.
Возвращаемое значение
Объект, представляющий новое правило корректировки.
Исключения
Kind Свойство dateStart или dateEnd параметр не равноUnspecified.
–или–
Параметр daylightTransitionStart равен параметру daylightTransitionEnd .
–или–
dateEnd Параметр dateStart содержит время дня.
dateEndболее ранний.dateStart
–или–
daylightDelta меньше -14 или больше 14.
–или–
Свойство MillisecondsdaylightDelta параметра не равно 0.
–или–
Свойство TicksdaylightDelta параметра не равно целому количеству секунд.
Примеры
В следующем примере создается альтернативный часовой пояс центрального стандарта и определяются три правила корректировки для периодов 1976-1986, 1987-2006 и выше. Эти правила добавляются в универсальный List<T> объект, элементы которого затем копируются в TimeZoneInfo.AdjustmentRule массив. Затем этот массив используется в вызове TimeZoneInfo.CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[]) метода.
// 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());
// Create alternate Central Standard Time to include historical time zone information
let delta = TimeSpan(1, 0, 0)
let adjustmentList = ResizeArray()
// Define end rule (for 1976-2006)
let transitionRuleEnd = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1, 2, 0, 0), 10, 5, DayOfWeek.Sunday)
// Define rule (1976-1986)
let transitionRuleStart = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1, 2, 0, 0), 04, 05, DayOfWeek.Sunday)
TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(DateTime(1976, 1, 1), DateTime(1986, 12, 31), delta, transitionRuleStart, transitionRuleEnd)
|> adjustmentList.Add
// Define rule (1987-2006)
let transitionRuleStart = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1, 2, 0, 0), 04, 01, DayOfWeek.Sunday)
TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(DateTime(1987, 1, 1), DateTime(2006, 12, 31), delta, transitionRuleStart, transitionRuleEnd)
|> adjustmentList.Add
// Define rule (2007- )
let transitionRuleStart = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1, 2, 0, 0), 03, 02, DayOfWeek.Sunday)
let transitionRuleEnd = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1, 2, 0, 0), 11, 01, DayOfWeek.Sunday)
TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(DateTime(2007, 01, 01), DateTime.MaxValue.Date, delta, transitionRuleStart, transitionRuleEnd)
|> adjustmentList.Add
// Create custom U.S. Central Standard Time zone
TimeZoneInfo.CreateCustomTimeZone("Central Standard Time", TimeSpan(-6, 0, 0),
"(GMT-06:00) Central Time (US Only)", "Central Standard Time",
"Central Daylight Time", adjustmentList.ToArray())
' Create alternate Central Standard Time to include historical time zone information
'
' Declare necessary TimeZoneInfo.AdjustmentRule objects for time zone
Dim delta As New TimeSpan(1, 0, 0)
Dim adjustment As TimeZoneInfo.AdjustmentRule
Dim adjustmentList As New List(Of TimeZoneInfo.AdjustmentRule)
' Declare transition time variables to hold transition time information
Dim transitionRuleStart, transitionRuleEnd As TimeZoneInfo.TransitionTime
' Define end rule (for 1976-2006)
transitionRuleEnd = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#02:00:00AM#, 10, 5, DayOfWeek.Sunday)
' Define rule (1976-1986)
transitionRuleStart = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#2:00:00AM#, 04, 05, DayOfWeek.Sunday)
adjustment = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(#01/01/1976#, #12/31/1986#, delta, transitionRuleStart, transitionRuleEnd)
adjustmentList.Add(adjustment)
' Define rule (1987-2006)
transitionRuleStart = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#2:00:00AM#, 04, 01, DayOfWeek.Sunday)
adjustment = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(#01/01/1987#, #12/31/2006#, delta, transitionRuleStart, transitionRuleEnd)
adjustmentList.Add(adjustment)
' Define rule (2007- )
transitionRuleStart = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#2:00:00AM#, 03, 02, DayOfWeek.Sunday)
transitionRuleEnd = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#2:00:00AM#, 11, 01, DayOfWeek.Sunday)
adjustment = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(#01/01/2007#, Date.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())
Комментарии
Этот метод можно использовать для создания одного или нескольких правил корректировки для пользовательского часового пояса. Массив TimeZoneInfo.AdjustmentRule объектов, возвращаемых вызовами этого метода, затем можно передать в качестве adjustmentRules параметра двум перегрузкам CreateCustomTimeZone метода. Пример иллюстрирует эту процедуру.
Замечание
Метод CreateAdjustmentRule можно использовать только для определения правила корректировки для нового часового пояса. Его нельзя использовать для изменения правила корректировки для существующего часового пояса.
Значения dateStart даты и параметры должны быть значениями даты без компонента времени или ArgumentExceptiondateEnd создания. Компонент времени можно удалить, извлекая DateTime значение из свойства даты и времени Date , как показано в следующих инструкциях:
DateTime.MinValue.Date
DateTime.MaxValue.Date
DateTime.Now.Date
dateVariable.Date
Свойство KinddateStart и dateEnd параметры также должны быть DateTimeKind.Unspecified.
Значение daylightDelta параметра может варьироваться от -14 до 14.
daylightDelta Сумма параметра и baseUtcOffset параметра, используемого в вызове TimeZoneInfo.CreateCustomTimeZone метода, также должны варьироваться от -14 до 14 или InvalidTimeZoneException возникает.
Замечание
Параметр daylightDelta определяет разницу между стандартным временем часового пояса и временем летнего времени. Оно не предназначено для определения стандартного смещения часового пояса от согласованного универсального времени (UTC). Класс TimeZoneInfo предполагает, что это смещение от UTC является константой в течение всего времени существования часового пояса. Чтобы отразить изменение смещения часового пояса в формате UTC, которое не вызвано применением правила корректировки, необходимо использовать CreateCustomTimeZone метод для создания нового пользовательского часового пояса.
Применяется к
CreateAdjustmentRule(DateTime, DateTime, TimeSpan, TimeZoneInfo+TransitionTime, TimeZoneInfo+TransitionTime, TimeSpan)
- Исходный код:
- TimeZoneInfo.AdjustmentRule.cs
- Исходный код:
- TimeZoneInfo.AdjustmentRule.cs
- Исходный код:
- TimeZoneInfo.AdjustmentRule.cs
- Исходный код:
- TimeZoneInfo.AdjustmentRule.cs
- Исходный код:
- TimeZoneInfo.AdjustmentRule.cs
Создает новое правило корректировки для определенного часового пояса.
public:
static TimeZoneInfo::AdjustmentRule ^ CreateAdjustmentRule(DateTime dateStart, DateTime dateEnd, TimeSpan daylightDelta, TimeZoneInfo::TransitionTime daylightTransitionStart, TimeZoneInfo::TransitionTime daylightTransitionEnd, TimeSpan baseUtcOffsetDelta);
public static TimeZoneInfo.AdjustmentRule CreateAdjustmentRule(DateTime dateStart, DateTime dateEnd, TimeSpan daylightDelta, TimeZoneInfo.TransitionTime daylightTransitionStart, TimeZoneInfo.TransitionTime daylightTransitionEnd, TimeSpan baseUtcOffsetDelta);
static member CreateAdjustmentRule : DateTime * DateTime * TimeSpan * TimeZoneInfo.TransitionTime * TimeZoneInfo.TransitionTime * TimeSpan -> TimeZoneInfo.AdjustmentRule
Public Shared Function CreateAdjustmentRule (dateStart As DateTime, dateEnd As DateTime, daylightDelta As TimeSpan, daylightTransitionStart As TimeZoneInfo.TransitionTime, daylightTransitionEnd As TimeZoneInfo.TransitionTime, baseUtcOffsetDelta As TimeSpan) As TimeZoneInfo.AdjustmentRule
Параметры
- dateStart
- DateTime
Дата действия правила корректировки. Если значение равно DateTime.MinValue.Date, это первое правило корректировки, которое действует для часового пояса.
- dateEnd
- DateTime
Последняя дата принудительного применения правила корректировки. Если значение равно DateTime.MaxValue.Date, правило корректировки не имеет даты окончания.
- daylightDelta
- TimeSpan
Изменение времени, которое приводит к корректировке. Это значение добавляется в часовой пояс BaseUtcOffset и BaseUtcOffsetDelta свойства, чтобы получить правильное смещение дневного света из универсального времени (UTC). Это значение может варьироваться от -14 до 14.
- daylightTransitionStart
- TimeZoneInfo.TransitionTime
Начало летнего времени.
- daylightTransitionEnd
- TimeZoneInfo.TransitionTime
Конец летнего времени.
- baseUtcOffsetDelta
- TimeSpan
Разница времени с базовым смещением UTC для часового пояса во время периода корректировки правила.
Возвращаемое значение
Новое правило корректировки.