Wenn es zwischen Windows und Linux Unterschiede gibt, deutet dies doch auf einen Fehler hin und sollte bereinigt werden - oder sehe ich das falsch?
Dies ist kein Lazarus-Problem, sondern der Fehler liegt beim OS.
Nicht unbedingt, es könnten ja auch linux-spezifische Units reinspielen. Aber ich habe eben auf Mint einen kleinen Test gemacht, und da ist bei der lokalen Zeit 17:45 die UniversalTime 15:45, genau wie es sein soll (1 Std. Mitteleuropa nach England plus 1 Stunde Sommerzeit), und genauso wie bei Windows.
Wenn das Betriebssystem die Uhrzeit falsch anzeigt, stimmt ja wohl die Zeiteinstellung nicht - dann kann Lazarus das ja auch nicht richtig anzeigen ...
Viel Wind um nichts
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.
Nicht mit Lazarus unter Linux, da kann wie hier (viewtopic.php?f=18&t=10646) festgestellt durchaus Now einen anderen Wert als die angezeigte Systemzeit liefern.
Es verwirrt ungemein, wenn du hier den Funktionswert unterschlägst, weil man nicht weiß, wo man das Ergebnis der "Prozedur" TimeToStr() findet. Verständlicher wäre:
var s:String; ... s:= TimeToStr(LocalTimeToUniversal(Now)); // in unit DateUtils s := TimeToStr(NowUTC); // in unit LazUTF8SysUtils s := IntToStr(GetLocalTimeOffset);