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.
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();