Bagikan melalui


TimeZoneInfo.CreateCustomTimeZone Metode

Definisi

Menentukan zona waktu yang tidak ditemukan pada komputer lokal.

Overload

CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[], Boolean)

Membuat zona waktu kustom dengan pengidentifikasi tertentu, offset dari Waktu Universal Terkoordinasi (UTC), nama tampilan, nama waktu standar, nama waktu musim panas, aturan waktu musim panas, dan nilai yang menunjukkan apakah objek yang dikembalikan mencerminkan informasi waktu musim panas.

CreateCustomTimeZone(String, TimeSpan, String, String)

Membuat zona waktu kustom dengan pengidentifikasi tertentu, offset dari Waktu Universal Terkoordinasi (UTC), nama tampilan, dan nama tampilan waktu standar.

CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[])

Membuat zona waktu kustom dengan pengidentifikasi tertentu, offset dari Waktu Universal Terkoordinasi (UTC), nama tampilan, nama waktu standar, nama waktu musim panas, dan aturan waktu musim panas.

CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[], Boolean)

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

Membuat zona waktu kustom dengan pengidentifikasi tertentu, offset dari Waktu Universal Terkoordinasi (UTC), nama tampilan, nama waktu standar, nama waktu musim panas, aturan waktu musim panas, dan nilai yang menunjukkan apakah objek yang dikembalikan mencerminkan informasi waktu musim panas.

public:
 static TimeZoneInfo ^ CreateCustomTimeZone(System::String ^ id, TimeSpan baseUtcOffset, System::String ^ displayName, System::String ^ standardDisplayName, System::String ^ daylightDisplayName, cli::array <TimeZoneInfo::AdjustmentRule ^> ^ adjustmentRules, bool disableDaylightSavingTime);
public static TimeZoneInfo CreateCustomTimeZone (string id, TimeSpan baseUtcOffset, string? displayName, string? standardDisplayName, string? daylightDisplayName, TimeZoneInfo.AdjustmentRule[]? adjustmentRules, bool disableDaylightSavingTime);
public static TimeZoneInfo CreateCustomTimeZone (string id, TimeSpan baseUtcOffset, string displayName, string standardDisplayName, string daylightDisplayName, TimeZoneInfo.AdjustmentRule[] adjustmentRules, bool disableDaylightSavingTime);
static member CreateCustomTimeZone : string * TimeSpan * string * string * string * TimeZoneInfo.AdjustmentRule[] * bool -> TimeZoneInfo
Public Shared Function CreateCustomTimeZone (id As String, baseUtcOffset As TimeSpan, displayName As String, standardDisplayName As String, daylightDisplayName As String, adjustmentRules As TimeZoneInfo.AdjustmentRule(), disableDaylightSavingTime As Boolean) As TimeZoneInfo

Parameter

id
String

Pengidentifikasi zona waktu.

baseUtcOffset
TimeSpan

Objek TimeSpan yang mewakili perbedaan waktu antara zona waktu ini dan Waktu Universal Terkoordinasi (UTC).

displayName
String

Nama tampilan zona waktu baru.

standardDisplayName
String

Nama waktu standar zona waktu baru.

daylightDisplayName
String

Nama waktu musim panas dari zona waktu baru.

adjustmentRules
TimeZoneInfo.AdjustmentRule[]

Array TimeZoneInfo.AdjustmentRule objek yang menambah offset UTC dasar untuk periode tertentu.

disableDaylightSavingTime
Boolean

true untuk membuang informasi terkait waktu musim panas apa pun yang ada dengan adjustmentRules objek baru; jika tidak, false.

Mengembalikan

Zona waktu baru. disableDaylightSavingTime Jika parameter adalah true, objek yang dikembalikan tidak memiliki data waktu musim panas.

Pengecualian

Parameternya id adalah null.

Parameter id adalah string kosong ("").

-atau-

Parameter baseUtcOffset tidak mewakili seluruh jumlah menit.

Parameter baseUtcOffset lebih besar dari 14 jam atau kurang dari -14 jam.

Aturan penyesuaian yang ditentukan dalam adjustmentRules parameter tumpang tindih.

-atau-

Aturan penyesuaian yang ditentukan dalam adjustmentRules parameter tidak dalam urutan kronologis.

-atau-

Satu atau beberapa elemen di adjustmentRules adalah null.

-atau-

Tanggal dapat memiliki beberapa aturan penyesuaian yang diterapkan padanya.

-atau-

Jumlah baseUtcOffset parameter dan DaylightDelta nilai satu atau beberapa objek dalam adjustmentRules array lebih besar dari 14 jam atau kurang dari -14 jam.

Contoh

Contoh berikut membuat zona waktu kustom untuk stasiun Palmer dan Pulau Anvers di Antartika. Ini mengatur disableDaylightSavingTime parameter dalam panggilan ke TimeZoneInfo.CreateCustomTimeZone metode ke true. Kemudian menampilkan nama waktu musim panas zona waktu baru, jika ada, dan jumlah aturan penyesuaian untuk mengonfirmasi bahwa zona waktu baru tidak memiliki informasi waktu musim panas.

// Define transition times to/from DST
TimeZoneInfo.TransitionTime startTransition, endTransition;
startTransition = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1, 4, 0, 0),
                                                                  10, 2, DayOfWeek.Sunday); 
endTransition = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1,3, 0, 0), 
                                                                3, 2, DayOfWeek.Sunday);
// Define adjustment rule
TimeSpan delta = new TimeSpan(1, 0, 0);
TimeZoneInfo.AdjustmentRule adjustment = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(new DateTime(1999, 10, 1), 
                                      DateTime.MaxValue.Date, delta, startTransition, endTransition);
// Create array for adjustment rules
TimeZoneInfo.AdjustmentRule[] adjustments = {adjustment};
// Define other custom time zone arguments
string displayName = "(GMT-04:00) Antarctica/Palmer Time";
string standardName = "Palmer Standard Time";
string daylightName = "Palmer Daylight Time";
TimeSpan offset = new TimeSpan(-4, 0, 0);
// Create custom time zone without copying DST information
TimeZoneInfo palmer = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName, 
                                                  daylightName, adjustments, true);
// Indicate whether new time zone//s adjustment rules are present
Console.WriteLine("{0} {1}has {2} adjustment rules.", 
                  palmer.StandardName, 
                  ! (string.IsNullOrEmpty(palmer.DaylightName)) ?  "(" + palmer.DaylightName + ") ": "" , 
                  palmer.GetAdjustmentRules().Length);
// Indicate whether new time zone supports DST
Console.WriteLine("{0} supports DST: {1}", palmer.StandardName, palmer.SupportsDaylightSavingTime);
// Define transition times to/from DST
let startTransition = 
    TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1, 4, 0, 0), 10, 2, DayOfWeek.Sunday) 
let endTransition = 
    TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1,3, 0, 0), 3, 2, DayOfWeek.Sunday)
// Define adjustment rule
let delta = TimeSpan(1, 0, 0)
let adjustment = 
    TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(DateTime(1999, 10, 1), DateTime.MaxValue.Date, delta, startTransition, endTransition)
// Create array for adjustment rules
let adjustments = [| adjustment |]
// Define other custom time zone arguments
let displayName = "(GMT-04:00) Antarctica/Palmer Time"
let standardName = "Palmer Standard Time"
let daylightName = "Palmer Daylight Time"
let offset = TimeSpan(-4, 0, 0)
// Create custom time zone without copying DST information
let palmer = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName, daylightName, adjustments, true)
// Indicate whether time zone//s adjustment rules are present
printfn $"""{palmer.StandardName} {if String.IsNullOrEmpty palmer.DaylightName then "" else "(" + palmer.DaylightName + ")"}has {palmer.GetAdjustmentRules().Length} adjustment rules."""
// Indicate whether time zone supports DST
printfn $"{palmer.StandardName} supports DST: {palmer.SupportsDaylightSavingTime}"
' Define transition times to/from DST
Dim startTransition As TimeZoneInfo.TransitionTime = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#04:00:00#, 10, 2, DayOfWeek.Sunday) 
Dim endTransition As TimeZoneInfo.TransitionTime = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#3:00:00#, 3, 2, DayOfWeek.Sunday)
' Define adjustment rule
Dim delta As TimeSpan = New TimeSpan(1, 0, 0)
Dim adjustment As TimeZoneInfo.AdjustmentRule = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(#10/01/1999#, Date.MaxValue.Date, delta, startTransition, endTransition)
' Create array for adjustment rules
Dim adjustments() As TimeZoneInfo.AdjustmentRule = {adjustment}
' Define other custom time zone arguments
Dim displayName As String = "(GMT-04:00) Antarctica/Palmer Time"
Dim standardName As String = "Palmer Standard Time"
Dim daylightName As String = "Palmer Daylight Time"
Dim offset As TimeSpan = New TimeSpan(-4, 0, 0)
Dim palmer As TimeZoneInfo = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName, daylightName, adjustments, True)
' Indicate whether new time zone's adjustment rules are present
Console.WriteLine("{0} {1}has {2} adjustment rules.", _
                  palmer.StandardName, _
                  IIf(Not String.IsNullOrEmpty(palmer.DaylightName), "(" & palmer.DaylightName & ") ", ""), _
                  palmer.GetAdjustmentRules().Length)
' Indicate whether new time zone supports DST
Console.WriteLine("{0} supports DST: {1}", palmer.StandardName, palmer.SupportsDaylightSavingTime)

Keterangan

Anda dapat menggunakan kelebihan beban TimeZoneInfo.CreateCustomTimeZone metode ini untuk membuat zona waktu kustom yang dukungannya untuk waktu musim panas dapat ditentukan oleh kondisi pada durasi.

Tabel berikut menunjukkan hubungan antara parameter yang disediakan ke TimeZoneInfo.CreateCustomTimeZone metode dan anggota TimeZoneInfo objek yang dikembalikan oleh panggilan metode.

Parameter CreateCustomTimeZone Properti TimeZoneInfo
id Id
baseUtcOffset BaseUtcOffset
displayName DisplayName
standardDisplayName StandardName
daylightDisplayName DaylightName jika disableDaylightSavingTime adalah false; String.Empty jika disableDaylightSavingTime adalah true.
adjustmentRules Array TimeZoneInfo.AdjustmentRule objek yang dikembalikan oleh GetAdjustmentRules metode jika disableDaylightSavingTime adalah false; array kosong yang dikembalikan oleh GetAdjustmentRules metode jika disableDaylightSavingTime adalah true.
disableDaylightSavingTime Bukan SupportsDaylightSavingTime.

Biasanya, nama waktu standar zona waktu dan pengidentifikasinya sama. Namun, panjang pengidentifikasi zona waktu tidak boleh melebihi 32 karakter. String yang diteruskan ke displayName parameter mengikuti format yang cukup standar. Bagian pertama dari nama tampilan adalah offset dasar zona waktu dari Waktu Universal Terkoordinasi, yang ditunjukkan oleh akronim GMT (untuk Greenwich Mean Time), yang diapit tanda kurung. Ini diikuti oleh string yang mengidentifikasi zona waktu itu sendiri, atau satu atau beberapa kota, wilayah, atau negara di zona waktu, atau keduanya. Contohnya:

(GMT+02:00) Athens, Beirut, Istanbul, Minsk
(GMT-02:00) Mid-Atlantic
(GMT-07:00) Mountain Time (US & Canada)

Aturan penyesuaian zona waktu ditentukan dengan melakukan hal berikut:

  1. Memanggil atau CreateFloatingDateRuleCreateFixedDateRule metode untuk menentukan aturan transisi awal dan akhir untuk setiap aturan penyesuaian.

  2. Memanggil CreateAdjustmentRule metode untuk setiap aturan penyesuaian.

  3. Menetapkan aturan penyesuaian ke array yang dapat diteruskan sebagai adjustmentRules parameter .

Jika disableDaylightSavingTime parameter adalah false, operasi metode ini identik dengan TimeZoneInfo.CreateCustomTimeZone kelebihan beban. Jika disableDaylightSavingTime adalah true, objek yang dikembalikan tidak menyertakan aturan penyesuaian dan DaylightName properti yang nilainya adalah string kosong.

Lihat juga

Berlaku untuk

CreateCustomTimeZone(String, TimeSpan, String, String)

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

Membuat zona waktu kustom dengan pengidentifikasi tertentu, offset dari Waktu Universal Terkoordinasi (UTC), nama tampilan, dan nama tampilan waktu standar.

public:
 static TimeZoneInfo ^ CreateCustomTimeZone(System::String ^ id, TimeSpan baseUtcOffset, System::String ^ displayName, System::String ^ standardDisplayName);
public static TimeZoneInfo CreateCustomTimeZone (string id, TimeSpan baseUtcOffset, string? displayName, string? standardDisplayName);
public static TimeZoneInfo CreateCustomTimeZone (string id, TimeSpan baseUtcOffset, string displayName, string standardDisplayName);
static member CreateCustomTimeZone : string * TimeSpan * string * string -> TimeZoneInfo
Public Shared Function CreateCustomTimeZone (id As String, baseUtcOffset As TimeSpan, displayName As String, standardDisplayName As String) As TimeZoneInfo

Parameter

id
String

Pengidentifikasi zona waktu.

baseUtcOffset
TimeSpan

Objek yang mewakili perbedaan waktu antara zona waktu ini dan Waktu Universal Terkoordinasi (UTC).

displayName
String

Nama tampilan zona waktu baru.

standardDisplayName
String

Nama waktu standar zona waktu baru.

Mengembalikan

Zona waktu baru.

Pengecualian

Parameternya id adalah null.

Parameter id adalah string kosong ("").

-atau-

Parameter baseUtcOffset tidak mewakili seluruh jumlah menit.

Parameter baseUtcOffset lebih besar dari 14 jam atau kurang dari -14 jam.

Contoh

Contoh berikut membuat zona waktu kustom untuk wilayah Mawson dan Holme Bay di Antartika. Kemudian menampilkan hasil konversi waktu lokal ke waktu di zona waktu baru.

string displayName = "(GMT+06:00) Antarctica/Mawson Time";
string standardName = "Mawson Time"; 
TimeSpan offset = new TimeSpan(06, 00, 00);
TimeZoneInfo mawson = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName);
Console.WriteLine("The current time is {0} {1}", 
                  TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.Local, mawson),
                  mawson.StandardName);
let displayName = "(GMT+06:00) Antarctica/Mawson Time"
let standardName = "Mawson Time" 
let offset = TimeSpan(06, 00, 00)
let mawson = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName)
printfn $"The current time is {TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.Local, mawson)} {mawson.StandardName}"
Dim displayName As String = "(GMT+06:00) Antarctica/Mawson Time"
Dim standardName As String = "Mawson Time" 
Dim offset As TimeSpan = New TimeSpan(06, 00, 00)
Dim mawson As TimeZoneInfo = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName)
Console.WriteLine("The current time is {0} {1}", _ 
                  TimeZoneInfo.ConvertTime(Date.Now, TimeZoneInfo.Local, mawson), _
                  mawson.StandardName)

Keterangan

Kelebihan beban CreateCustomTimeZone(String, TimeSpan, String, String) metode ini cocok untuk membuat zona waktu yang tidak memiliki penyesuaian (yaitu, zona waktu yang tidak mendukung waktu musim panas). Untuk menentukan zona waktu yang mencakup penyesuaian untuk waktu musim panas, gunakan TimeZoneInfo.CreateCustomTimeZone metode atau TimeZoneInfo.CreateCustomTimeZone .

Tabel berikut menunjukkan hubungan antara parameter yang disediakan ke TimeZoneInfo.CreateCustomTimeZone metode dan properti TimeZoneInfo objek yang dikembalikan oleh panggilan metode.

Parameter CreateCustomTimeZone Properti TimeZoneInfo
id Id
baseUtcOffset BaseUtcOffset
displayName DisplayName
standardDisplayName StandardName

Biasanya, nama waktu standar zona waktu dan pengidentifikasinya sama. Namun, panjang pengidentifikasi zona waktu tidak boleh melebihi 32 karakter. String yang diteruskan ke displayName parameter mengikuti format yang cukup standar. Bagian pertama dari nama tampilan adalah offset dasar zona waktu dari Waktu Universal Terkoordinasi, yang ditunjukkan oleh akronim GMT (untuk Greenwich Mean Time), yang diapit tanda kurung. Ini diikuti oleh string yang mengidentifikasi zona waktu itu sendiri, atau satu atau beberapa kota, wilayah, atau negara di zona waktu, atau keduanya. Contohnya:

(GMT+02:00) Athens, Beirut, Istanbul, Minsk
(GMT-02:00) Mid-Atlantic
(GMT-07:00) Mountain Time (US & Canada)

Lihat juga

Berlaku untuk

CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[])

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

Membuat zona waktu kustom dengan pengidentifikasi tertentu, offset dari Waktu Universal Terkoordinasi (UTC), nama tampilan, nama waktu standar, nama waktu musim panas, dan aturan waktu musim panas.

public:
 static TimeZoneInfo ^ CreateCustomTimeZone(System::String ^ id, TimeSpan baseUtcOffset, System::String ^ displayName, System::String ^ standardDisplayName, System::String ^ daylightDisplayName, cli::array <TimeZoneInfo::AdjustmentRule ^> ^ adjustmentRules);
public static TimeZoneInfo CreateCustomTimeZone (string id, TimeSpan baseUtcOffset, string? displayName, string? standardDisplayName, string? daylightDisplayName, TimeZoneInfo.AdjustmentRule[]? adjustmentRules);
public static TimeZoneInfo CreateCustomTimeZone (string id, TimeSpan baseUtcOffset, string displayName, string standardDisplayName, string daylightDisplayName, TimeZoneInfo.AdjustmentRule[] adjustmentRules);
static member CreateCustomTimeZone : string * TimeSpan * string * string * string * TimeZoneInfo.AdjustmentRule[] -> TimeZoneInfo
Public Shared Function CreateCustomTimeZone (id As String, baseUtcOffset As TimeSpan, displayName As String, standardDisplayName As String, daylightDisplayName As String, adjustmentRules As TimeZoneInfo.AdjustmentRule()) As TimeZoneInfo

Parameter

id
String

Pengidentifikasi zona waktu.

baseUtcOffset
TimeSpan

Objek yang mewakili perbedaan waktu antara zona waktu ini dan Waktu Universal Terkoordinasi (UTC).

displayName
String

Nama tampilan zona waktu baru.

standardDisplayName
String

Nama waktu standar zona waktu baru.

daylightDisplayName
String

Nama waktu musim panas dari zona waktu baru.

adjustmentRules
TimeZoneInfo.AdjustmentRule[]

Array yang menambah offset UTC dasar untuk periode tertentu.

Mengembalikan

Objek TimeZoneInfo yang mewakili zona waktu baru.

Pengecualian

Parameternya id adalah null.

Parameter id adalah string kosong ("").

-atau-

Parameter baseUtcOffset tidak mewakili seluruh jumlah menit.

Parameter baseUtcOffset lebih besar dari 14 jam atau kurang dari -14 jam.

Aturan penyesuaian yang ditentukan dalam adjustmentRules parameter tumpang tindih.

-atau-

Aturan penyesuaian yang ditentukan dalam adjustmentRules parameter tidak dalam urutan kronologis.

-atau-

Satu atau beberapa elemen di adjustmentRules adalah null.

-atau-

Tanggal dapat memiliki beberapa aturan penyesuaian yang diterapkan padanya.

-atau-

Jumlah baseUtcOffset parameter dan DaylightDelta nilai satu atau beberapa objek dalam adjustmentRules array lebih besar dari 14 jam atau kurang dari -14 jam.

Contoh

Contoh berikut membuat zona waktu kustom untuk stasiun Palmer dan Pulau Anvers di Antartika. Kemudian mengonversi waktu lokal ke waktu di zona waktu baru dan menampilkan hasilnya.

// Define transition times to/from DST
TimeZoneInfo.TransitionTime startTransition, endTransition;
startTransition = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1, 4, 0, 0), 
                                                                  10, 2, DayOfWeek.Sunday); 
endTransition = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1, 3, 0, 0), 
                                                                3, 2, DayOfWeek.Sunday);
// Define adjustment rule
TimeSpan delta = new TimeSpan(1, 0, 0);
TimeZoneInfo.AdjustmentRule adjustment;
adjustment = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(new DateTime(1999, 10, 1), DateTime.MaxValue.Date, delta, startTransition, endTransition);
// Create array for adjustment rules
TimeZoneInfo.AdjustmentRule[] adjustments = {adjustment};
// Define other custom time zone arguments
string displayName = "(GMT-04:00) Antarctica/Palmer Time";
string standardName = "Palmer Time";
string daylightName = "Palmer Daylight Time";
TimeSpan offset = new TimeSpan(-4, 0, 0);
TimeZoneInfo palmer = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName, daylightName, adjustments);
Console.WriteLine("The current time is {0} {1}",  
                  TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.Local, palmer), 
                  palmer.StandardName);
// Define transition times to/from DST
let startTransition = 
    TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1, 4, 0, 0), 10, 2, DayOfWeek.Sunday) 
let endTransition = 
    TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1, 3, 0, 0), 3, 2, DayOfWeek.Sunday)
// Define adjustment rule
let delta = TimeSpan(1, 0, 0)
let adjustment = 
    TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(DateTime(1999, 10, 1), DateTime.MaxValue.Date, delta, startTransition, endTransition)
// Create array for adjustment rules
let adjustments = [| adjustment |]
// Define other custom time zone arguments
let displayName = "(GMT-04:00) Antarctica/Palmer Time"
let standardName = "Palmer Time"
let daylightName = "Palmer Daylight Time"
let offset = TimeSpan(-4, 0, 0)
let palmer = 
    TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName, daylightName, adjustments)
printfn $"The current time is {TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.Local, palmer)} {palmer.StandardName}"
' Define transition times to/from DST
Dim startTransition As TimeZoneInfo.TransitionTime = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#04:00:00#, 10, 2, DayOfWeek.Sunday) 
Dim endTransition As TimeZoneInfo.TransitionTime = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#3:00:00#, 3, 2, DayOfWeek.Sunday)
' Define adjustment rule
Dim delta As TimeSpan = New TimeSpan(1, 0, 0)
Dim adjustment As TimeZoneInfo.AdjustmentRule = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(#10/01/1999#, Date.MaxValue.Date, delta, startTransition, endTransition)
' Create array for adjustment rules
Dim adjustments() As TimeZoneInfo.AdjustmentRule = {adjustment}
' Define other custom time zone arguments
Dim DisplayName As String = "(GMT-04:00) Antarctica/Palmer Time"
Dim standardName As String = "Palmer Standard Time"
Dim daylightName As String = "Palmer Daylight Time"
Dim offset As TimeSpan = New TimeSpan(-4, 0, 0)
Dim palmer As TimeZoneInfo = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName, daylightName, adjustments)
Console.WriteLine("The current time is {0} {1}", _ 
                  TimeZoneInfo.ConvertTime(Date.Now, TimeZoneInfo.Local, palmer), _
                  palmer.StandardName)

Keterangan

Kelebihan metode TimeZoneInfo.CreateCustomTimeZone ini cocok untuk membuat zona waktu yang mendukung waktu musim panas. Untuk menentukan zona waktu yang tidak mendukung waktu musim panas, gunakan TimeZoneInfo.CreateCustomTimeZone metode atau TimeZoneInfo.CreateCustomTimeZone .

Tabel berikut menunjukkan hubungan antara parameter yang disediakan ke TimeZoneInfo.CreateCustomTimeZone metode dan anggota TimeZoneInfo objek yang dikembalikan oleh panggilan metode.

Parameter CreateCustomTimeZone Anggota TimeZoneInfo
id Id
baseUtcOffset BaseUtcOffset
displayName DisplayName
standardDisplayName StandardName
daylightDisplayName DaylightName
adjustmentRules Array System.TimeZoneInfo.AdjustmentRule objek yang dikembalikan oleh GetAdjustmentRules metode .

Biasanya, nama waktu standar zona waktu dan pengidentifikasinya sama. Namun, panjang pengidentifikasi zona waktu tidak boleh melebihi 32 karakter. String yang diteruskan ke displayName parameter mengikuti format yang cukup standar. Bagian pertama dari nama tampilan adalah offset dasar zona waktu dari Waktu Universal Terkoordinasi, yang ditunjukkan oleh akronim GMT (untuk Greenwich Mean Time), diapit dalam tanda kurung. Ini diikuti oleh string yang mengidentifikasi zona waktu itu sendiri, atau satu atau beberapa kota, wilayah, atau negara di zona waktu, atau keduanya. Contohnya:

(GMT+02:00) Athens, Beirut, Istanbul, Minsk
(GMT-02:00) Mid-Atlantic
(GMT-07:00) Mountain Time (US & Canada)

Parameter baseUtcOffset menentukan offset zona waktu kustom dari Waktu Universal Terkoordinasi (UTC) untuk semua aturan penyesuaian zona waktu. Dengan kata lain, TimeZoneInfo model objek mengasumsikan bahwa offset zona waktu dari UTC konstan sepanjang masa pakai zona waktu, dan tidak bergantung pada aturan penyesuaian tertentu. Untuk mencerminkan zona waktu yang telah mengubah offsetnya dari UTC, Anda harus membuat objek zona waktu baru.

Aturan penyesuaian zona waktu ditentukan dengan melakukan hal berikut:

  1. Memanggil metode CreateFloatingDateRule atau CreateFixedDateRule untuk menentukan waktu transisi awal dan akhir untuk setiap aturan penyesuaian.

  2. Memanggil CreateAdjustmentRule metode untuk setiap aturan penyesuaian.

  3. Menetapkan aturan penyesuaian ke array yang dapat diteruskan sebagai adjustmentRules parameter .

Lihat juga

Berlaku untuk