TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule Yöntem

Tanım

Aşırı Yüklemeler

CreateAdjustmentRule(DateTime, DateTime, TimeSpan, TimeZoneInfo+TransitionTime, TimeZoneInfo+TransitionTime)

Belirli bir saat dilimi için yeni bir ayarlama kuralı oluşturur.

CreateAdjustmentRule(DateTime, DateTime, TimeSpan, TimeZoneInfo+TransitionTime, TimeZoneInfo+TransitionTime, TimeSpan)

Belirli bir saat dilimi için yeni bir ayarlama kuralı oluşturur.

CreateAdjustmentRule(DateTime, DateTime, TimeSpan, TimeZoneInfo+TransitionTime, TimeZoneInfo+TransitionTime)

Kaynak:
TimeZoneInfo.AdjustmentRule.cs
Kaynak:
TimeZoneInfo.AdjustmentRule.cs
Kaynak:
TimeZoneInfo.AdjustmentRule.cs

Belirli bir saat dilimi için yeni bir ayarlama kuralı oluşturur.

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

Parametreler

dateStart
DateTime

Ayarlama kuralının geçerlilik tarihi. parametresinin dateStart değeri ise, bu saat dilimi için geçerli olan ilk ayarlama kuralıdır DateTime.MinValue.Date.

dateEnd
DateTime

Ayarlama kuralının yürürlükte olduğu son tarih. parametresinin dateEnd değeri ise DateTime.MaxValue.Date, ayarlama kuralının bitiş tarihi yoktur.

daylightDelta
TimeSpan

Ayarlamadan kaynaklanan zaman değişikliği. Bu değer, Eşgüdümlü Evrensel Saat'ten BaseUtcOffset (UTC) doğru gün ışığı uzaklığını elde etmek için saat diliminin özelliğine eklenir. Bu değer -14 ile 14 arasında değişebilir.

daylightTransitionStart
TimeZoneInfo.TransitionTime

Gün ışığından yararlanma saatinin başlangıcını tanımlayan nesne.

daylightTransitionEnd
TimeZoneInfo.TransitionTime

Gün ışığından yararlanma saatinin sonunu tanımlayan bir nesne.

Döndürülenler

Yeni ayarlama kuralını temsil eden bir nesne.

Özel durumlar

Kind veya dateEnd parametresinin dateStart özelliği eşit Unspecifieddeğildir.

-veya-

daylightTransitionStart parametresi parametresine daylightTransitionEnd eşittir.

-veya-

dateStart veya dateEnd parametresi günün saati değerini içerir.

dateEnd değerinden öncedir dateStart.

-veya-

daylightDelta -14'ten küçük veya 14'ten büyük.

-veya-

Milliseconds parametresinin daylightDelta özelliği 0'a eşit değildir.

-veya-

Ticks parametresinin daylightDelta özelliği tam saniye sayısına eşit değildir.

Örnekler

Aşağıdaki örnek alternatif bir Merkezi Standart Saat dilimi oluşturur ve 1976-1986, 1987-2006 ve 2007 ve sonraki dönemler için üç ayarlama kuralı tanımlar. Bu kurallar, öğeleri daha sonra bir diziye kopyalanan genel List<T> bir TimeZoneInfo.AdjustmentRule nesneye eklenir. Bu dizi daha sonra yöntemine yapılan çağrıda TimeZoneInfo.CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[]) kullanılır.

// 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())

Açıklamalar

Özel bir saat dilimi için bir veya daha fazla ayarlama kuralı oluşturmak için bu yöntemi kullanabilirsiniz. Bu yönteme TimeZoneInfo.AdjustmentRule yapılan çağrılar tarafından döndürülen nesnelerin dizisi, yöntemin adjustmentRules iki aşırı yüklemesine CreateCustomTimeZone parametre olarak geçirilebilir. Örnekte bu yordam gösterilmektedir.

Not

CreateAdjustmentRule yöntemi yalnızca yeni bir saat dilimi için ayarlama kuralı tanımlamak için kullanılabilir; mevcut bir saat dilimi için ayarlama kuralını değiştirmek için kullanılamaz.

dateStart ve dateEnd parametreleri bir saat bileşeni olmadan tarih değerleri olmalıdır veya bir ArgumentException oluşturulur. Saat bileşeni, aşağıdaki deyimlerde gösterildiği gibi tarih ve saatin Date özelliğinden bir DateTime değer alınarak kaldırılabilir:

DateTime.MinValue.Date  
DateTime.MaxValue.Date  
DateTime.Now.Date   
dateVariable.Date  

ve parametrelerinin dateStart özelliği de olmalıdırDateTimeKind.Unspecified.dateEndKind

Parametresinin daylightDelta değeri -14 ile 14 arasında değişebilir. parametresinin daylightDelta ve baseUtcOffset yöntemine yapılan çağrıda kullanılan parametrenin TimeZoneInfo.CreateCustomTimeZone toplamı da -14 ile 14 arasında olmalıdır veya bir InvalidTimeZoneException oluşturulur.

Not

parametresi, daylightDelta bir saat diliminin standart saati ile yaz saati arasındaki farkı tanımlar. Eşgüdümlü Evrensel Saat'ten (UTC) saat diliminin standart saat uzaklığını tanımlamaya yönelik değildir. sınıfı, TimeZoneInfo UTC'den bu uzaklığı saat diliminin ömrü boyunca sabit olduğunu varsayar. Saat diliminin UTC olan uzaklığında bir ayarlama kuralının uygulanmasından kaynaklanmayan bir değişikliği yansıtmak için yöntemini kullanarak CreateCustomTimeZone yeni bir özel saat dilimi oluşturmanız gerekir.

Şunlara uygulanır

CreateAdjustmentRule(DateTime, DateTime, TimeSpan, TimeZoneInfo+TransitionTime, TimeZoneInfo+TransitionTime, TimeSpan)

Kaynak:
TimeZoneInfo.AdjustmentRule.cs
Kaynak:
TimeZoneInfo.AdjustmentRule.cs
Kaynak:
TimeZoneInfo.AdjustmentRule.cs

Belirli bir saat dilimi için yeni bir ayarlama kuralı oluşturur.

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

Parametreler

dateStart
DateTime

Ayarlama kuralının geçerlilik tarihi. Değer ise, bu saat dilimi için geçerli olan ilk ayarlama kuralıdır DateTime.MinValue.Date.

dateEnd
DateTime

Ayarlama kuralının yürürlükte olduğu son tarih. Değer ise DateTime.MaxValue.Date, ayarlama kuralının bitiş tarihi yoktur.

daylightDelta
TimeSpan

Ayarlamadan kaynaklanan zaman değişikliği. Bu değer, Eşgüdümlü Evrensel Saat'ten BaseUtcOffset (UTC) doğru gün ışığı uzaklığını elde etmek için saat diliminin ve BaseUtcOffsetDelta özelliklerine eklenir. Bu değer -14 ile 14 arasında değişebilir.

daylightTransitionStart
TimeZoneInfo.TransitionTime

Gün ışığından yararlanma saatinin başlangıcı.

daylightTransitionEnd
TimeZoneInfo.TransitionTime

Gün ışığından yararlanma saatinin sonu.

baseUtcOffsetDelta
TimeSpan

Ayarlama kuralı dönemi boyunca saat dilimi için temel UTC uzaklığı ile saat farkı.

Döndürülenler

Yeni ayarlama kuralı.

Şunlara uygulanır