C# – Systemzeit und Datum ändern

Veröffentlicht von

Wie setze ich die Systemzeit und das Datum in C#?

Zuerst definieren wir folgende Struktur:

public struct SystemTime
{
    public short wYear;
    public short wMonth;
    public short wDayOfWeek;
    public short wDay;
    public short wHour;
    public short wMinute;
    public short wSecond;
    public short wMilliseconds;
}

Anschließend fügen wir die folgende extern Methode hinzu:

[DllImport("kernel32.dll", SetLastError = true)]
public static extern bool SetSystemTime(ref SystemTime st);

Sobald das erledigt ist, können wir die Systemzeit setzen:

var st = new SystemTime
{
    wYear = 2009,
    wMonth = 1,
    wDay = 1,
    wHour = 11,
    wMinute = 11,
    wSecond = 44
};

SetSystemTime(ref st);

Wer dies nun ausprobiert und feststellt, dass es nicht funktioniert: Das Programm benötigt Admin-Rechte um Zeit und Datum auch wirklich abzuändern.

Download Beispielprojekt

Zeit setzen von DateTime

Will man die Zeit von einem DateTime-Objekt übernehmen, sollte man vorher eine Konvertierung in „UniversalTime“ vornehmen:

var univeralTime = time.ToUniversalTime();

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert