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