Bagikan melalui


TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule Metode

Definisi

Overload

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

Sumber:
TimeZoneInfo.AdjustmentRule.cs
Sumber:
TimeZoneInfo.AdjustmentRule.cs
Sumber:
TimeZoneInfo.AdjustmentRule.cs
Sumber:
TimeZoneInfo.AdjustmentRule.cs
Sumber:
TimeZoneInfo.AdjustmentRule.cs

Membuat aturan penyesuaian baru untuk zona waktu tertentu.

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

Parameter

dateStart
DateTime

Tanggal efektif aturan penyesuaian. Jika nilai dateStart parameter adalah DateTime.MinValue.Date, ini adalah aturan penyesuaian pertama yang berlaku untuk zona waktu.

dateEnd
DateTime

Tanggal terakhir aturan penyesuaian berlaku. Jika nilai dateEnd parameter adalah DateTime.MaxValue.Date, aturan penyesuaian tidak memiliki tanggal akhir.

daylightDelta
TimeSpan

Perubahan waktu yang dihasilkan dari penyesuaian. Nilai ini ditambahkan ke properti zona BaseUtcOffset waktu untuk mendapatkan offset siang hari yang benar dari Waktu Universal Terkoordinasi (UTC). Nilai ini dapat berkisar dari -14 hingga 14.

daylightTransitionStart
TimeZoneInfo.TransitionTime

Objek yang menentukan awal waktu musim panas.

daylightTransitionEnd
TimeZoneInfo.TransitionTime

Objek yang menentukan akhir waktu musim panas.

Mengembalikan

Objek yang mewakili aturan penyesuaian baru.

Pengecualian

Properti Kind parameter dateStart atau dateEnd tidak sama dengan Unspecified.

-atau-

Parameter daylightTransitionStart sama dengan daylightTransitionEnd parameter .

-atau-

Parameter dateStart atau dateEnd mencakup nilai waktu hari.

dateEnd lebih awal dari dateStart.

-atau-

daylightDelta kurang dari -14 atau lebih besar dari 14.

-atau-

Properti MillisecondsdaylightDelta parameter tidak sama dengan 0.

-atau-

Properti TicksdaylightDelta parameter tidak sama dengan seluruh jumlah detik.

Contoh

Contoh berikut membuat zona Waktu Standar Pusat alternatif dan menentukan tiga aturan penyesuaian untuk periode 1976-1986, 1987-2006, dan 2007 dan seterusnya. Aturan ini ditambahkan ke objek generik List<T> yang elemennya kemudian disalin ke TimeZoneInfo.AdjustmentRule array. Array ini kemudian digunakan dalam panggilan ke TimeZoneInfo.CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[]) metode .

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

Keterangan

Anda dapat menggunakan metode ini untuk membuat satu atau beberapa aturan penyesuaian untuk zona waktu kustom. Array objek yang TimeZoneInfo.AdjustmentRule dikembalikan oleh panggilan ke metode ini kemudian dapat diteruskan sebagai adjustmentRules parameter ke dua kelebihan beban CreateCustomTimeZone metode. Contoh mengilustrasikan prosedur ini.

Nota

Metode CreateAdjustmentRule ini hanya dapat digunakan untuk menentukan aturan penyesuaian untuk zona waktu baru; metode tidak dapat digunakan untuk mengubah aturan penyesuaian untuk zona waktu yang ada.

Parameter dateStart dan dateEnd harus berupa nilai tanggal tanpa komponen waktu atau dilemparkan ArgumentException . Komponen waktu dapat dihapus dengan mengambil DateTime nilai dari properti tanggal dan waktu Date seperti yang ditunjukkan dalam pernyataan berikut:

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

Properti KinddateStart parameter dan dateEnd juga harus DateTimeKind.Unspecified.

Nilai daylightDelta parameter dapat berkisar dari -14 hingga 14. Jumlah daylightDelta parameter dan parameter yang baseUtcOffset digunakan dalam panggilan ke TimeZoneInfo.CreateCustomTimeZone metode juga harus berkisar dari -14 hingga 14 atau dilemparkan InvalidTimeZoneException .

Nota

Parameter daylightDelta menentukan perbedaan antara waktu standar zona waktu dan waktu musim panasnya. Ini tidak dimaksudkan untuk menentukan offset waktu standar zona waktu dari Waktu Universal Terkoordinasi (UTC). Kelas TimeZoneInfo mengasumsikan bahwa offset ini dari UTC konstan sepanjang masa pakai zona waktu. Untuk mencerminkan perubahan offset zona waktu dari UTC yang tidak disebabkan oleh penerapan aturan penyesuaian, Anda harus menggunakan CreateCustomTimeZone metode untuk membuat zona waktu kustom baru.

Berlaku untuk

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

Sumber:
TimeZoneInfo.AdjustmentRule.cs
Sumber:
TimeZoneInfo.AdjustmentRule.cs
Sumber:
TimeZoneInfo.AdjustmentRule.cs
Sumber:
TimeZoneInfo.AdjustmentRule.cs
Sumber:
TimeZoneInfo.AdjustmentRule.cs

Membuat aturan penyesuaian baru untuk zona waktu tertentu.

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

Parameter

dateStart
DateTime

Tanggal efektif aturan penyesuaian. Jika nilainya adalah DateTime.MinValue.Date, ini adalah aturan penyesuaian pertama yang berlaku untuk zona waktu.

dateEnd
DateTime

Tanggal terakhir aturan penyesuaian berlaku. Jika nilainya adalah DateTime.MaxValue.Date, aturan penyesuaian tidak memiliki tanggal akhir.

daylightDelta
TimeSpan

Perubahan waktu yang dihasilkan dari penyesuaian. Nilai ini ditambahkan ke zona BaseUtcOffset waktu dan BaseUtcOffsetDelta properti untuk mendapatkan offset siang hari yang benar dari Waktu Universal Terkoordinasi (UTC). Nilai ini dapat berkisar dari -14 hingga 14.

daylightTransitionStart
TimeZoneInfo.TransitionTime

Awal musim panas menghemat waktu.

daylightTransitionEnd
TimeZoneInfo.TransitionTime

Akhir musim panas menghemat waktu.

baseUtcOffsetDelta
TimeSpan

Perbedaan waktu dengan offset UTC dasar untuk zona waktu selama periode aturan penyesuaian.

Mengembalikan

Aturan penyesuaian baru.

Berlaku untuk