C#-Unix-Timestamp-Snippets
C#-Beispiele für aktuelle Epoch-Sekunden, Millisekunden, DateTimeOffset-Umwandlung, ISO-8601-Ausgabe und das Parsen von Timestamps aus Datums-Strings.
DateTimeOffset.UtcNow.ToUnixTimeSeconds()DateTimeOffset.UtcNow.ToUnixTimeMilliseconds()DateTimeOffset.FromUnixTimeSeconds(1700000000)
DateTimeOffset.FromUnixTimeMilliseconds(1700000000000)DateTimeOffset.FromUnixTimeSeconds(1700000000)
.UtcDateTime
.ToString("O")var dt = DateTimeOffset.Parse("2023-11-15T06:13:20Z");
dt.ToUnixTimeSeconds();
dt.ToUnixTimeMilliseconds();Grundlagen zu C#-Zeitstempeln
Modernes C# sollte für die Arbeit mit Unix-Zeitstempeln DateTimeOffset verwenden. DateTimeOffset.UtcNow.ToUnixTimeSeconds() gibt Unix-Sekunden zurück und ToUnixTimeMilliseconds() gibt JavaScript-kompatible Millisekunden zurück.
DateTimeOffset-Werte umwandeln
Verwende FromUnixTimeSeconds oder FromUnixTimeMilliseconds, um Epoch-Werte in DateTimeOffset umzuwandeln. Speichere in UTC und formatiere mit dem Round-Trip-Format O, wenn du einen ISO-8601-String brauchst.
Hinweise für den Produktiveinsatz von C#
DateTimeOffset ist für die Zeitstempelarbeit meist sicherer als DateTime, weil es einen Versatz am Wert behält. Speichere UTC-Zeitpunkte für Vergleiche und Persistenz und wandle nur zur Anzeige in eine lokale Zeitzone um. Sei vorsichtig, wenn Integrationen von „Epoch-Zeit“ sprechen, ohne Sekunden oder Millisekunden zu nennen.
- Verwende DateTimeOffset.UtcNow.ToUnixTimeSeconds() für Standard-Unix-Sekunden
- Verwende ToUnixTimeMilliseconds() für JavaScript-kompatible Werte
- Verwende FromUnixTimeSeconds() beim Lesen von API-Werten, die als Sekunden dokumentiert sind
- Verwende das Format O für Round-Trip-ISO-8601-Strings in Logs und JSON
FAQ
- Sollte Zeitstempel-Code DateTime oder DateTimeOffset verwenden?
- Bevorzuge DateTimeOffset für die Arbeit mit Unix-Zeitstempeln, da es den Offset-Kontext bewahrt. Es bietet außerdem direkte Helfer für Unix-Sekunden und -Millisekunden.
- Was bewirkt das O-Format?
- Das O-Format schreibt einen verlustfreien ISO-8601-Wert. Es ist nützlich für Logs, JSON und Tests, in denen der exakte Zeitpunkt das Parsen überleben soll.
- Wie überprüfe ich eine C#-Umrechnung?
- Wandle den Wert mit DateTimeOffset.FromUnixTimeSeconds oder FromUnixTimeMilliseconds zurück, formatiere ihn mit O und vergleiche diese UTC-Ausgabe mit deinem erwarteten Zeitstempel, bevor du den Wert speicherst.