Unix timestamp/DateTime conversion

Provides simple conversion methods between UNIX timestamps and .NET DateTime values.

An vielen Stellen werden zur Speicherung und Übertragung von Zeitwerten sog. UNIX-Zeitstempel verwendet. Das ist ein Integer-Wert, der die Anzahl der Sekunden darstellt, die zu einem bestimmten Zeitpunkt seit dem 1. Januar 1970 0:00 Uhr UTC vergangen sind. (Schaltsekunden werden nicht berücksichtigt.) Bei Verwendung eines Int32-Werts (signed integer, 32 bit) können so Zeitwerte von 13. Dezember 1901, 20:46 Uhr UTC bis 19. Januar 2038, 3:14 Uhr UTC dargestellt werden.

Der UNIX-Timestamp berechnet sich immer in UTC, ändert sich also nicht bei Zeitzonenwechseln wie Sommerzeiten. Für die Darstellung wird üblicherweise lokale Zeit verwendet, wie sie bei verwendung von DateTime.Now angegeben wird. Deshalb wird die DateTime-Angabe in diesen Funktionen auch aus bzw. in lokale Zeit umgerechnet. Dieser Teil kann entfernt werden, wenn eine Umrechnung zu UTC gewünscht ist.

Compatibility: .NET Version 2.0 or newer

Download

UnixDateTime.cs716 BQuelltext der Unix-DateTime-Konvertierungsfunktionen

Contents of the file:

/// <summary>
/// Wandelt eine Zeit im DateTime-Format in einen UNIX-TimeStamp um.
/// </summary>
/// <param name="TimeStamp">Der umzuwandelnde Timestamp</param>
/// <returns></returns>
public static int DateTime2TimeStamp(DateTime Time)
{
    DateTime x = new DateTime(1970, 1, 1, 0, 0, 0);
    return (int) ((Time.ToUniversalTime().Ticks - x.Ticks) / 10000000);
}

/// <summary>
/// Wandelt einen UNIX-TimeStamp in das DateTime-Format um.
/// </summary>
/// <param name="TimeStamp">Der umzuwandelnde Timestamp</param>
/// <returns></returns>
public static DateTime TimeStamp2DateTime(int TimeStamp)
{
    DateTime x = new DateTime(1970, 1, 1, 0, 0, 0);
    return x.AddSeconds(TimeStamp).ToLocalTime();
}

Licence and terms of use

This software is freely available as source code and compiled version, without restrictions (“public domain”). There is no warranty, not even for merchantability or fitness for a particular purpose. I am not liable for any damage caused through appropriate or inappropriate use.

Statistic data

  • Created on 2007-04-02.