Bekerja dengan DateTimes dan Zon Masa dalam C#
Banyak tugas pengaturcaraan, terutamanya dalam ujian, menuntut penciptaan DateTime
objek yang terikat pada zon waktu tertentu. Walaupun pembina DateTime
mengendalikan masa setempat, UTC dan masa yang tidak ditentukan, menggunakan TimeZoneInfo
menawarkan kawalan yang lebih tepat.
Memanfaatkan TimeZoneInfo
Daripada bergantung semata-mata pada DateTime
harta TimeZone
pembina, TimeZoneInfo
menyediakan pengurusan zon waktu dan keupayaan penukaran yang unggul.
Struktur Masa Tarikh Tersuai
Contoh ini menggunakan struktur tersuai, DateTimeWithZone
, untuk merangkum DateTime
dan zon waktu yang berkaitan:
<code class="language-csharp">public struct DateTimeWithZone { private readonly DateTime utcDateTime; private readonly TimeZoneInfo timeZone; public DateTimeWithZone(DateTime dateTime, TimeZoneInfo timeZone) { var dateTimeUnspec = DateTime.SpecifyKind(dateTime, DateTimeKind.Unspecified); utcDateTime = TimeZoneInfo.ConvertTimeToUtc(dateTimeUnspec, timeZone); this.timeZone = timeZone; } public DateTime UniversalTime => utcDateTime; public TimeZoneInfo TimeZone => timeZone; public DateTime LocalTime => TimeZoneInfo.ConvertTime(utcDateTime, timeZone); }</code>
Aplikasi Praktikal
Untuk mencipta objek DateTimeWithZone
dalam zon Waktu Standard Pasifik (PST):
<code class="language-csharp">var pstDateTime = new DateTimeWithZone(new DateTime(2023, 1, 1), TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time"));</code>
Pendekatan ini membolehkan kerja lancar dengan DateTime
objek dalam zon waktu tertentu, memudahkan penukaran antara UTC dan waktu tempatan mengikut keperluan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencipta DateTimes dengan Zon Masa Tertentu dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!