Heim > Backend-Entwicklung > C++ > Wie erstelle ich ein DateTime -Objekt in einer bestimmten Zeitzone (z. B. PST) in C#?

Wie erstelle ich ein DateTime -Objekt in einer bestimmten Zeitzone (z. B. PST) in C#?

Patricia Arquette
Freigeben: 2025-01-26 04:26:09
Original
576 Leute haben es durchsucht

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

Erstellen Sie ein DateTime-Objekt mit einer angegebenen Zeitzone in C#

Bei der Softwareentwicklung ist die genaue Handhabung von Datums- und Uhrzeitvorgängen von entscheidender Bedeutung. Dazu gehört das Erstellen und Bearbeiten von DateTime-Objekten in einer bestimmten Zeitzone. In C# bietet der DateTime-Konstruktor begrenzte Optionen zum Festlegen der Zeitzone. Um diese Einschränkung zu umgehen, wird in diesem Artikel erläutert, wie Sie mithilfe der TimeZoneInfo-Klasse ein DateTime-Objekt mit einer angegebenen Zeitzone (z. B. PST) erstellen.

TimeZoneInfo: Leistungsstarker Mechanismus zur Zeitzonenverarbeitung

Es wird empfohlen, die TimeZoneInfo-Klasse im System.TimeZone-Namespace zu verwenden, anstatt sich auf die integrierten Zeitzonenoptionen des DateTime-Konstruktors zu verlassen. TimeZoneInfo bietet einen umfassenden Satz von Eigenschaften und Methoden für den Umgang mit Zeitzonen.

Praktische Lösung: DateTimeWithZone-Struktur

Um DateTime in verschiedenen Zeitzonen nahtlos zu verarbeiten, sollten Sie die Implementierung der folgenden benutzerdefinierten Struktur in Betracht ziehen:

<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 { get { return utcDateTime; } }

    public TimeZoneInfo TimeZone { get { return timeZone; } }

    public DateTime LocalTime
    {
        get
        {
            return TimeZoneInfo.ConvertTime(utcDateTime, timeZone);
        }
    }
}</code>
Nach dem Login kopieren

Vorteile dieser Methode

Mit dieser Struktur können Sie ein DateTime-Objekt in UTC verwenden und es zur Anzeige oder Verarbeitung einfach in eine andere Zeitzone konvertieren. Es stellt Eigenschaften für die Weltzeit (UTC), Zeitzoneninformationen und die Ortszeit basierend auf der angegebenen Zeitzone bereit.

Anwendungsbeispiele

Um ein DateTime-Objekt in PST zu erstellen, können Sie den folgenden Code verwenden:

<code class="language-csharp">var pstTimeZone = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time");
var pstDateTime = new DateTimeWithZone(DateTime.Now, pstTimeZone);</code>
Nach dem Login kopieren

Dadurch wird ein DateTimeWithZone-Objekt erstellt, das das aktuelle Datum und die aktuelle Uhrzeit in der PST-Zeitzone darstellt. Sie können jetzt bei Bedarf problemlos auf UTC-Zeit, PST-Zeit und Zeitzoneninformationen zugreifen.

Das obige ist der detaillierte Inhalt vonWie erstelle ich ein DateTime -Objekt in einer bestimmten Zeitzone (z. B. PST) in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage