Arbeiten mit DateTen und Zeitzonen in C#
arbeiten Viele Programmieraufgaben, insbesondere bei den Tests, erfordern die Erstellung von DateTime
-Objekten, die an bestimmte Zeitzonen gebunden sind. Während der DateTime
Konstruktor die lokalen, UTC- und nicht spezifizierten Zeiten übernimmt und TimeZoneInfo
eine genauere Steuerung bietet.
Nutzung von Timezoneinfo
Anstatt sich nur auf die DateTime
-Konstruktor -Eigenschaft zu verlassen, bietet TimeZone
TimeZoneInfo
die Funktionen für die Verwaltung von Zeitzonen und die Konvertierung.
benutzerdefinierte DateTime -Struktur
Dieses Beispiel verwendet eine benutzerdefinierte Struktur DateTimeWithZone
, um ein DateTime
und seine zugehörige Zeitzone zu verringern:
<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>
Praktische Anwendung
, um ein DateTimeWithZone
Objekt in der Pacific Standard Time (PST) Zone zu erstellen:
<code class="language-csharp">var pstDateTime = new DateTimeWithZone(new DateTime(2023, 1, 1), TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time"));</code>
Dieser Ansatz ermöglicht nahtlose Arbeiten mit DateTime
Objekten in bestimmten Zeitzonen und erleichtert die Conversions zwischen UTC und lokaler Zeit nach Bedarf.
Das obige ist der detaillierte Inhalt vonWie kann ich Datensätze mit bestimmten Zeitzonen in C#erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!