Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mencipta Objek DateTime dalam Zon Masa Tertentu (mis., PST) dalam C# Tanpa Menggunakan Tempatan atau UTC?

Bagaimana untuk Mencipta Objek DateTime dalam Zon Masa Tertentu (mis., PST) dalam C# Tanpa Menggunakan Tempatan atau UTC?

Barbara Streisand
Lepaskan: 2025-01-26 04:16:14
asal
173 orang telah melayarinya

How to Create a DateTime Object in a Specific Time Zone (e.g., PST) in C# Without Using Local or UTC?

Buat objek DateTime dengan zon waktu tertentu dalam C#

Apabila melakukan ujian unit yang melibatkan perubahan zon waktu, anda mesti boleh mencipta objek DateTime dalam zon waktu bukan tempatan tertentu.

Soalan:

Bagaimana untuk mencipta objek DateTime dengan zon waktu tertentu (seperti PST) tanpa bergantung pada zon waktu tempatan atau zon waktu UTC?

Jawapan:

Pembina DateTime hanya membenarkan zon waktu tempatan, zon waktu UTC atau pilihan yang tidak ditentukan. Oleh itu, kita boleh menggunakan TimeZoneInfo.

Penyelesaian:

Untuk dapat mencipta objek DateTime dengan zon waktu tertentu (mis. PST), pertimbangkan untuk melaksanakan struktur tersuai:

<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>
Salin selepas log masuk

Struktur ini membolehkan anda mencipta objek DateTime dengan zon waktu tertentu dan mengakses waktu UTC dan waktu tempatannya. Permudahkan kod anda menggunakan sifat badan ekspresi.

Atas ialah kandungan terperinci Bagaimana untuk Mencipta Objek DateTime dalam Zon Masa Tertentu (mis., PST) dalam C# Tanpa Menggunakan Tempatan atau UTC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan