TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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)
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)
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ı.