Tanggal, waktu, dan zona waktu

Selain struktur dasar DateTime, .NET menyediakan kelas berikut yang mendukung bekerja dengan zona waktu:

  • TimeZone

    Gunakan kelas ini untuk bekerja dengan zona waktu lokal sistem dan zona Waktu Universal Terkoordinasi (UTC). Fungsionalitas kelas TimeZone sebagian besar digantikan oleh kelas TimeZoneInfo.

  • TimeZoneInfo

    Gunakan kelas ini untuk bekerja dengan zona waktu apa pun yang telah ditentukan sebelumnya pada sistem, untuk membuat zona waktu baru, dan untuk dengan mudah mengonversi tanggal dan waktu dari satu zona waktu ke zona waktu lainnya. Untuk pengembangan baru, gunakan kelas TimeZoneInfo alih-alih kelas TimeZone.

  • DateTimeOffset

    Gunakan struktur ini untuk bekerja dengan tanggal dan waktu yang offset (atau perbedaannya) dari UTC telah diketahui. Struktur DateTimeOffset menggabungkan nilai tanggal dan waktu dengan offset waktu tersebut dari UTC. Karena hubungannya dengan UTC, tanggal dan nilai waktu individu secara jelas mengidentifikasi satu titik waktu. Hal ini membuat nilai DateTimeOffset lebih portabel dari satu komputer ke komputer lainnya daripada nilai DateTime.

Dimulai dengan .NET 6, jenis-jenis berikut akan tersedia:

  • DateOnly

    Gunakan struktur ini saat menangani nilai yang hanya mewakili tanggal. Tanggal mewakili satu hari penuh, dari awal hari hingga akhir. DateOnly memiliki rentang 0001-01-01 hingga 9999-12-31. Selain itu, jenis ini mewakili kombinasi bulan, hari, dan tahun tanpa waktu spesifik. Jika sebelumnya Anda menggunakan jenis DateTime dalam kode Anda untuk mewakili tanggal yang mengabaikan waktu, gunakan jenis ini sebagai gantinya.

  • TimeOnly

    Gunakan struktur ini untuk mewakili waktu tanpa tanggal. Waktu mewakili jam, menit, dan detik pada hari yang tidak spesifik. TimeOnly memiliki rentang 00:00:00.0000000 hingga 23:59:59.9999999. Jenis ini dapat digunakan untuk mengganti jenis DateTime dan TimeSpan di kode Anda saat Anda menggunakan jenis tersebut untuk mewakili waktu.

Bagian berikutnya memberikan informasi yang Anda butuhkan untuk bekerja dengan zona waktu dan untuk membuat aplikasi sadar zona waktu yang dapat mengonversi tanggal dan waktu dari satu zona waktu ke yang lainnya.

Di bagian ini

Gambaran umum zona waktu
Membahas terminologi, konsep, dan masalah-masalah yang terlibat dalam membuat aplikasi sadar zona waktu.

Memilih antara DateTime, DateTimeOffset, TimeSpan, dan TimeZoneInfo
Membahas kapan harus menggunakan jenis DateTime, DateTimeOffset, dan TimeZoneInfo saat menangani data tanggal dan waktu.

Menemukan zona waktu yang ditentukan pada sistem lokal
Menjelaskan cara menghitung zona waktu yang ditemukan pada sistem lokal.

Petunjuk: Menghitung zona waktu yang ada di komputer
Memberikan contoh yang menghitung zona waktu yang ditentukan dalam registri komputer dan yang memungkinkan pengguna memilih zona waktu yang telah ditentukan dari daftar.

Petunjuk: Mengakses objek zona waktu lokal dan UTC yang telah ditentukan sebelumnya
Menjelaskan cara mengakses Waktu Universal Terkoordinasi dan zona waktu lokal.

Petunjuk: Membuat instans objek TimeZoneInfo
Menjelaskan cara membuat instans objek TimeZoneInfo dari registri sistem lokal.

Membuat intans objek DateTimeOffset
Membahas cara membuat instans objek DateTimeOffset dan cara yang memungkinkan nilai DateTime dapat dikonversi menjadi nilai DateTimeOffset.

Petunjuk: Membuat zona waktu tanpa aturan penyesuaian
Menjelaskan cara membuat zona waktu kustom yang tidak mendukung transisi ke dan dari waktu musim panas.

Petunjuk: Membuat zona waktu dengan aturan penyesuaian
Menjelaskan cara membuat zona waktu kustom yang mendukung satu atau beberapa transisi ke dan dari waktu musim panas.

Menyimpan dan memulihkan zona waktu
Menjelaskan dukungan TimeZoneInfo untuk serialisasi dan deserialisasi data zona waktu dan menggambarkan beberapa skenario di mana fitur-fitur ini dapat digunakan.

Petunjuk: Menyimpan zona waktu ke sumber daya yang disematkan
Menjelaskan cara membuat zona waktu kustom dan menyimpan informasinya dalam file sumber daya.

Petunjuk: Memulihkan zona waktu dari sumber daya yang disematkan
Menjelaskan cara membuat instans zona waktu kustom yang telah disimpan ke file sumber tersemat.

Melakukan operasi aritmetika dengan tanggal dan waktu
Membahas masalah yang terlibat dalam menambahkan, mengurangi, dan membandingkan nilai DateTime dan DateTimeOffset.

Petunjuk: Menggunakan zona waktu dalam aritmetika tanggal dan waktu
Membahas cara melakukan aritmetika tanggal dan waktu yang mencerminkan aturan penyesuaian zona waktu.

Mengonversi antara DateTime dan DateTimeOffset
Menjelaskan cara mengonversi antara nilai DateTime dan DateTimeOffset.

Mengonversi waktu antar zona waktu
Menjelaskan cara mengonversi waktu dari satu zona waktu ke zona waktu lainnya.

Petunjuk: Mengatasi waktu ambigu
Menjelaskan cara mengatasi waktu yang ambigu dengan memetakannya ke waktu standar zona waktu.

Petunjuk: Memungkinkan pengguna mengatasi waktu ambigu
Menjelaskan cara memungkinkan pengguna menentukan pemetaan antara waktu lokal yang ambigu dan Waktu Universal Terkoordinasi.

Referensi

System.TimeZoneInfo