TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Overload
| Nama | Deskripsi |
|---|---|
| CreateAdjustmentRule(DateTime, DateTime, TimeSpan, TimeZoneInfo+TransitionTime, TimeZoneInfo+TransitionTime) |
Membuat aturan penyesuaian baru untuk zona waktu tertentu. |
| CreateAdjustmentRule(DateTime, DateTime, TimeSpan, TimeZoneInfo+TransitionTime, TimeZoneInfo+TransitionTime, TimeSpan) |
Membuat aturan penyesuaian baru untuk zona waktu tertentu. |
CreateAdjustmentRule(DateTime, DateTime, TimeSpan, TimeZoneInfo+TransitionTime, TimeZoneInfo+TransitionTime)
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)
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.