fpc/Lazarus: UTC-Umrechnungen liegen daneben

Gast #6646424
Lesenswert?
• ▲
▼
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
Gast #6647449
Lesenswert?
• ▲
▼
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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.