Bagikan melalui


Cara: Membuat zona waktu tanpa aturan penyesuaian

Informasi zona waktu yang tepat yang diperlukan oleh aplikasi mungkin tidak ada pada sistem tertentu karena beberapa alasan:

  • Zona waktu belum pernah ditentukan dalam registri sistem lokal.

  • Data tentang zona waktu telah dimodifikasi atau dihapus dari registri.

  • Zona waktu ada tetapi tidak memiliki informasi yang akurat tentang penyesuaian zona waktu untuk periode bersejarah tertentu.

Dalam kasus ini, Anda dapat memanggil CreateCustomTimeZone metode untuk menentukan zona waktu yang diperlukan oleh aplikasi Anda. Anda dapat menggunakan kelebihan beban metode ini untuk membuat zona waktu dengan atau tanpa aturan penyesuaian. Jika zona waktu mendukung waktu hemat siang hari, Anda dapat menentukan penyesuaian dengan menggunakan aturan penyesuaian tetap atau mengambang. (Untuk definisi istilah ini, lihat bagian "Terminologi Zona Waktu" di Gambaran umum zona waktu.)

Penting

Zona waktu kustom yang dibuat dengan memanggil CreateCustomTimeZone metode tidak ditambahkan ke registri. Sebaliknya, mereka hanya dapat diakses melalui referensi objek yang dikembalikan oleh pemanggilan metode CreateCustomTimeZone.

Topik ini menunjukkan cara membuat zona waktu tanpa aturan penyesuaian. Untuk membuat zona waktu yang mendukung aturan penyesuaian waktu musim panas, lihat Cara: Membuat zona waktu dengan aturan penyesuaian.

Untuk membuat zona waktu tanpa aturan penyesuaian

  1. Tentukan nama tampilan zona waktu.

    Nama tampilan mengikuti format yang cukup standar di mana offset zona waktu dari Waktu Universal Terkoordinasi (UTC) diapit tanda kurung dan diikuti oleh string yang mengidentifikasi zona waktu, satu atau beberapa kota di zona waktu, atau satu atau beberapa negara atau wilayah di zona waktu.

  2. Tentukan nama waktu standar zona waktu. Biasanya, string ini juga digunakan sebagai pengidentifikasi zona waktu.

  3. Jika Anda ingin menggunakan pengidentifikasi yang berbeda dari nama standar zona waktu, tentukan pengidentifikasi zona waktu.

  4. Menginisialisasi objek TimeSpan yang menentukan offset zona waktu dari UTC. Zona waktu dengan waktu yang lebih lambat dari UTC memiliki offset positif. Zona waktu dengan waktu yang lebih awal dari UTC memiliki offset negatif.

  5. TimeZoneInfo.CreateCustomTimeZone(String, TimeSpan, String, String) Panggil metode untuk membuat instans zona waktu baru.

Contoh

Contoh berikut mendefinisikan zona waktu kustom untuk Mawson, Antartika, yang tidak memiliki aturan penyesuaian.

string displayName = "(GMT+06:00) Antarctica/Mawson Time";
string standardName = "Mawson Time";
TimeSpan offset = new(06, 00, 00);
TimeZoneInfo mawson = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName);
Console.WriteLine($"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)

String yang ditetapkan ke DisplayName properti mengikuti format standar di mana offset zona waktu dari UTC diikuti oleh deskripsi zona waktu yang ramah.

Mengkompilasi kode

Contoh ini memerlukan:

  • Bahwa namespace berikut diimpor:

    using System.Collections.Generic;
    
    Imports System.Collections.Generic
    Imports System.Collections.ObjectModel
    
    

Lihat juga