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.dateEnd
Kind
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ı.