Hallo zusammen,
bei meinen Apps, die nonstop laufen, ist mir bei der Sommerzeit- Umstellung aufgefallen, das Now den Wert eine Stunde zurück liefert. Erste nach einem Neustart der Apps, stimmte die Zeit wieder. Das Betriebssystem (Linux) hatte die richtige Sommerzeit.
Betriebssystem ist ein Debian-Derivate.
Hat da jemand eine Idee oder ein workaround?
Viele Grüße
AP
Funktion Now und Zeitumstellung
- AlterPascaler
- Beiträge: 88
- Registriert: Mo 26. Jun 2023, 18:56
- OS, Lazarus, FPC: Linux, Lazarus, Free Pascal
- CPU-Target: xxBit
- Wohnort: Deutschland, NRW
Funktion Now und Zeitumstellung
Viele Grüße
AlterPascaler
AlterPascaler
Re: Funktion Now und Zeitumstellung
Vielleicht hilft Dir der Kommentar unter https://www.freepascal.org/docs-html/rt ... ffset.html :
Und auf der Seite von ReReadTime unter https://www.freepascal.org/docs-html/rt ... ltime.html steht dann:Note that on Linux/Unix, the information returned from the TDateTime-unaware function may be inaccurate around the DST time changes (for optimization). In that case, the unix.ReReadLocalTime unit must be used to re-initialize the timezone information.
Fazit: Vielleicht hängst Du mal ein ReReadTime() vor Deine Zeitabfrage, drehst Deine Uhr zurück auf vor der Zeitumstellung und schaust mal, ob es dann besser klappt.ReReadLocalTime can be used to re-initialize the local timezone information.
To speed up conversion of epoch (UTC) time to local time, the timezone information is loaded only once, at program startup. Calling this routine re-reads the timezone information using current timezone settings.
- af0815
- Lazarusforum e. V.
- Beiträge: 6857
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Funktion Now und Zeitumstellung
ReReadTime rufe ich nicht zu häufig ab, weil es unnötig ist und nur unnötige Systemlast verursacht. Wenn man es einmal in der Stunde macht ist es auch ok. Weil die Zeitumstellung ist ja nicht so häufigStevie hat geschrieben: Mo 22. Apr 2024, 18:45 Fazit: Vielleicht hängst Du mal ein ReReadTime() vor Deine Zeitabfrage, drehst Deine Uhr zurück auf vor der Zeitumstellung und schaust mal, ob es dann besser klappt.

Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
- AlterPascaler
- Beiträge: 88
- Registriert: Mo 26. Jun 2023, 18:56
- OS, Lazarus, FPC: Linux, Lazarus, Free Pascal
- CPU-Target: xxBit
- Wohnort: Deutschland, NRW
-
- Beiträge: 6967
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Funktion Now und Zeitumstellung
Am besten mal diese Umschaltrrei abschaffen. Mensch, Natur und auch PC haben nur Probleme mit diesem Mist.bei meinen Apps, die nonstop laufen, ist mir bei der Sommerzeit- Umstellung aufgefallen, das Now den Wert eine Stunde zurück liefert.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
- AlterPascaler
- Beiträge: 88
- Registriert: Mo 26. Jun 2023, 18:56
- OS, Lazarus, FPC: Linux, Lazarus, Free Pascal
- CPU-Target: xxBit
- Wohnort: Deutschland, NRW
Re: Funktion Now und Zeitumstellung
Ist auch eine gute Idee, aber solange kann ich nicht warten. Versucht die EU ja schon einige Jahre. Wobei ich die Bedenken von Spanien verstehen kann. Vielleicht muss man wieder Zeitzonen einführen. Aber wie schön gesagt, soviel Zeit habe ich nicht.
Viele Grüße
AlterPascaler
AlterPascaler
- AlterPascaler
- Beiträge: 88
- Registriert: Mo 26. Jun 2023, 18:56
- OS, Lazarus, FPC: Linux, Lazarus, Free Pascal
- CPU-Target: xxBit
- Wohnort: Deutschland, NRW
Re: Funktion Now und Zeitumstellung
Update:
Mit ReReadLocalTime() funktioniert das. Implementiert habe ich das so, das zum Zeitpunkt der Zeitumstellung plus 10 Sekunden die Procedure ReReadLocalTime() aufgerufen wird, also zweimal im Jahr.
Gruß an alle Pascaler.
Mit ReReadLocalTime() funktioniert das. Implementiert habe ich das so, das zum Zeitpunkt der Zeitumstellung plus 10 Sekunden die Procedure ReReadLocalTime() aufgerufen wird, also zweimal im Jahr.
Gruß an alle Pascaler.
Viele Grüße
AlterPascaler
AlterPascaler