Hi zusammen, ich habe ein Problem mit Uhrzeiten unter Lazarus/FPC: Die Umrechnung der Uhrzeit hakelt reproduzierbar abhängig von der Plattform. 3 Systeme im Einsatz: a) PC mit Linux Mint 18 b) raspberry2 mit raspbian c) raspberry3 mit osmc Alle Systeme sind in der gleichen Zeitzone, alle haben die gleiche lokale Zeit. Eigentlich will ich die aktuelle Uhrzeit als UTC an ein externes Gerät schicken. Lese ich die Zeit mit now() aus, kommt die aktuelle Uhrzeit auf allen Systemen korrekt. Sobald ich aber anfange, das mit DateUtils.LocalTimeToUniversal() umzurechnen, geht es drunter und drüber. PC liefert korrektes Ergebnis, raspberries liegen beide 4h daneben (=2x 2h Solldifferenz). Gleiches Problem mit nowUTC(). Also entweder ich bin zu doof, bei den raspberries mit dpkg-reconfigure tzdata richtig einzustellen (Europa->Berlin) oder ich sehe gerade den Wald vor lauter Offensichtlichkeiten nicht. Habt ihr ähnliche Erfahrungen gemacht oder einen Lösungsansatz? Mir wäre schon wichtig, daß der Code auf PC und raspberry gleich arbeitet, da das Programm später auf beiden Plattformen laufen soll. Danke schon mal! VG Gartenbahner
Schau dir mal die man-Page zu tzset an, insb wie er herausklamüsert, welche Zeitzone er benutzen soll.
Hi foobar, ich habe mir das mal durchgelesen, aber wirklich weitergeholfen hat es nicht. Aber dafür habe ich jetzt die Lösung in den fpc-sources von dateutils gefunden :) PC:
1 | Function LocalTimeToUniversal(LT: TDateTime): TDateTime; |
2 | begin |
3 | Result:=LocalTimeToUniversal(LT,GetLocalTimeOffset); |
4 | end; |
raspberry:
1 | Function LocalTimeToUniversal(LT: TDateTime): TDateTime; |
2 | begin |
3 | Result:=LocalTimeToUniversal(LT,-GetLocalTimeOffset); |
4 | end; |
beachte das Minus beim raspberry. Zumindest weiß ich jetzt, was ich umgehen muß. :) VG Gartenbahner
Schon krass. Hast du mal die beiden Versionsnummern von PC und RasPi verglichen? Muss ja wohl ein Bug in der älteren Version gewesen sein. Zum Glück lässt sich Lazarus aus den Sourcen sehr leicht kompilieren.
viel besser, einfach melden.Solche Fehler werden schnell behoben
Ist schon lange geschehen, daher ja der Unterschied. Aktuell haben wir 2.0.12. Das Raspi Repo steht noch auf einer uralt Version 1.6.2 von 2016
:
Bearbeitet durch User
Localtime zu UTC ist etwas von Schwierigsten, das es gibt. Nicht nur wegen Sommerzeit, welche in einigen Laendern existiert, oder nicht, sondern auch wegen den Zeitzonen. Da gibt es welche, die haben nur eine Halbe, oder Viertelstunde Versatz, vielleicht auch nur temporaer.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.