C#

Knowledge Base

C# > Lösungen, Rezepte, Tipps, Fragen

Datum ohne Millisekunden

Die Datum / Zeit ohne Millisekunden (= sekundengenaue Angabe) lässt sich so ermitteln:

var dt = DateTime.Now;
dt = new DateTime(dt.Year, dt.Month, dt.Day, dt.Hour, dt.Minute, dt.Second, dt.Kind);

Dies wird z. B. benötigt, wenn das Datum + Zeit in einer Datenbank gespeichert wird und diese (z. B. beim MS SQL Server datetime Datentyp) eine Umwandlung aufgrund einer anderen Präzision stattfindet.

In diesem Fall sind die beiden Daten nicht mehr identisch - d. h. etwaige Vergleiche schlagen fehl - evtl. werden aber die Milli-Sekunden nicht benötigt, so dass diese generell entfernt werden und damit die Speicherung des Datums entsprechend denselben Wert enthält.


Alternative als Extension-Methode (Erweiterung von [DateTime]):

/// <summary>
/// Returns the [DateTime] without milliseconds part.
/// </summary>
public static DateTime WithoutMilliseconds(this DateTime dateTime)
{
    return new DateTime(dateTime.Year, dateTime.Month, dateTime.Day, dateTime.Hour, dateTime.Minute, dateTime.Second, dateTime.Kind);
}