TimeZoneInfo.CreateCustomTimeZone 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.
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:
Memanggil atau CreateFloatingDateRuleCreateFixedDateRule metode untuk menentukan aturan transisi awal dan akhir untuk setiap aturan penyesuaian.
Memanggil CreateAdjustmentRule metode untuk setiap aturan penyesuaian.
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
- Cara: Membuat Zona Waktu Tanpa Aturan Penyesuaian
- Cara: Membuat Zona Waktu dengan Aturan Penyesuaian
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:
Memanggil metode CreateFloatingDateRule atau CreateFixedDateRule untuk menentukan waktu transisi awal dan akhir untuk setiap aturan penyesuaian.
Memanggil CreateAdjustmentRule metode untuk setiap aturan penyesuaian.
Menetapkan aturan penyesuaian ke array yang dapat diteruskan sebagai
adjustmentRules
parameter .