C# DateTime.Ticks in Unix-Timestamp und andere Formate umrechnen
Mit den DateTime-Funktionen des .NET-Frameworks lässt sich so einiges anstellen. Der Umgang damit gestaltet sich, meiner Meinung nach, sehr angenehm. Einzige Voraussetzung: Man befindet sich in einer reinen .NET-Umgebung. Kommen andere Systeme ins Spiel, so geht die Rechnerei los. Aber woran liegt es, dass man zum Beispiel DateTime.Ticks nicht mit der PHP-Funktion mktime() vergleichen kann?
Ruft man den “Timestamp” eines DateTime-Objekts (DateTime.Ticks) ab, so bekommt man die Anzahl der Ticks seit dem 01.01.0001 00:00Uhr zurück. Ein Tick wiederum ist 100 Nanosekunden lang.
Ein Unix-Timestamp, so wie ihn mktime() zum Beispiel produziert, gibt im Gegenteil zu DateTime.Ticks die Anzahl der Sekunden seit dem 01.01.1970 zurück.
Ein direkter Vergleich ist somit nicht möglich. Wie umgerechnet werden muss, möchte ich euch heute anhand von ein paar kurzen Snippets zeigen.
Unix-Timestamp -> DateTime.Ticks
private static DateTime TimeFromUnixTimestamp(int unixTimestamp)
{
[…]