Die lokale Systemzeit (DateTime.Now) hat den entscheidenden Nachteil, dass sie 2-mal im Jahr um eine Stunde springt. Für eine Web-Applikation mag dies vernachlässigbar sein, in einem Windows-Service der 24h am Tag im Hintergrund läuft kann es jedoch fatale Folgen haben.

Diese Probleme lassen sich vermeiden, wenn man sich angewöhnt mit UTC zu arbeiten. Die "Koordinierte Weltzeit" hat den Vorteil, dass sie jederzeit überall auf der Welt gleich ist, und dass sie keine Sommerzeit/Winterzeit kennt.

Immer wenn es also gilt einen Zeitpunkt festzuhalten bzw. die aktuelle Zeit in einer Variable zu speichern, sollte daher UTC verwendet werden:

DateTime.UtcNow