FormatDateTime kein 24 Stunden Format?

Für allgemeine Fragen zur Programmierung, welche nicht! direkt mit Lazarus zu tun haben.
Pinguin
Beiträge: 13
Registriert: Do 7. Aug 2008, 07:46

FormatDateTime kein 24 Stunden Format?

Beitrag von Pinguin »

Hallo!
Folgender Code zeigt unter Linux kein 24 Stunden Format:
..
DateTimeTest:= StrToDateTime('05-05-2008 12:30:20');
Label2.Caption := FormatDateTime('YYYY-MM-DD tt',DateTimeTest);
..
Output Label2: 200-05-05 00:30:20

Die Links
http://www.freepascal.org/docs-html/rtl ... etime.html" onclick="window.open(this.href);return false;
http://www.freepascal.org/docs-html/rtl ... chars.html" onclick="window.open(this.href);return false;
helfen auch nicht weiter, bzw wird nicht auf das 24Stunden Format eingegangen.

Ist das ein Lazarus-Linux Problem?
Kann jemand helfen? (typisches Anfänger Problem)

Linkat
Lazarusforum e. V.
Beiträge: 567
Registriert: So 10. Sep 2006, 23:24
OS, Lazarus, FPC: Linux Mint 22.1; Lazarus 4.0 FPC 3.2.2; RaspiOS
CPU-Target: AMD 64, ARM 64
Wohnort: nr Stuttgart

Beitrag von Linkat »

Hallo Pinguin,
wenn du 12:30:20 pm schreibst, so gibt er auch 12:30:20 aus. Vielleicht hilft's?

Gruß, Linkat

Pinguin
Beiträge: 13
Registriert: Do 7. Aug 2008, 07:46

FormatDateTime kein 24 Stunden Format?

Beitrag von Pinguin »

Hallo Linkat,
ja so geht es, jedoch nicht automatisch.
Bei Stunden < 12 muss dann 12:30:20 am gesetzt werden.
Das heißt selbst anpassen.
Mühsam ernährt sich der Pinguin

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

FormatDateTime('YYYY-MM-DD HH:MM',DateTimeTest);

sollte eigentlich 24h ausgeben
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Pinguin
Beiträge: 13
Registriert: Do 7. Aug 2008, 07:46

FormatDateTime kein 24 Stunden Format?

Beitrag von Pinguin »

Hallo Christian,

ja, auf den ersten Blick sieht es gut aus, jedoch im Detail steckt der Teufel.

DateTimeTest:= StrToDateTime('05-05-2008 11:30:20');
Label3.Caption := FormatDateTime('YYYY-MM-DD HH:MM:SS',DateTimeTest);
ist ok, zeigt 05-05-2008 11:30:20

DateTimeTest:= StrToDateTime('05-05-2008 13:30:20');
Label3.Caption := FormatDateTime('YYYY-MM-DD HH:MM:SS',DateTimeTest);
ist auch ok, zeigt 05-05-2008 13:30:20

aber
DateTimeTest:= StrToDateTime('05-05-2008 12:30:20');
Label3.Caption := FormatDateTime('YYYY-MM-DD HH:MM:SS',DateTimeTest);
zeigt: 05-05-2008 00:30:20

Hast Du eine Idee?

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Das ist doch arschklar.
StrTodateTime benutzt das Systemzeitshema und setzt somit 12h vorraus da dies auf deinem System eigestellt ist. De Ausgabe funktiniert perfekt.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Beitrag von Euklid »

Ich kann die Beobachtung von pinguin auf meinem System bestätigen.
Christian hat geschrieben:StrTodateTime benutzt das Systemzeitshema und setzt somit 12h vorraus da dies auf deinem System eigestellt ist. De Ausgabe funktiniert perfekt.
Mein Systemzeitschema ist auf "Deutschland" eingestellt und die Systemuhr gibt die Uhrzeit dementsprechend im 24h-System aus. Also scheidet diese Erklärung im Grunde doch aus, oder irre ich mich?

baba
Beiträge: 265
Registriert: Mi 4. Apr 2007, 17:47

Beitrag von baba »

Christian hat geschrieben:Das ist doch arschklar.
... was ist das denn wieder?

Baba.

Ps. Monta, sind die Keywords nicht aktiv?

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Mein Systemzeitschema ist auf "Deutschland" eingestellt und die Systemuhr gibt die Uhrzeit dementsprechend im 24h-System aus. Also scheidet diese Erklärung im Grunde doch aus, oder irre ich mich?
Dann übernimmt die fpc rtl das Systemzeitshema falsch. Oder deine Desktopumgebung speichert sich das irgendwo anders weg als der rest des Systems, was sagt denn time (Befehl) ?
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Beitrag von Euklid »

Christian hat geschrieben:Dann übernimmt die fpc rtl das Systemzeitshema falsch. Oder deine Desktopumgebung speichert sich das irgendwo anders weg als der rest des Systems, was sagt denn time (Befehl) ?
Time gibt die Zeit ebenfalls im 24h-System aus. Insbesondere gibt Time die Zeit 12:30 tatsächlich auch als 12:30 aus, und nicht als 0:30.

Ich vermute einen FPC-Bug, den Pinguin da aufgedeckt hat. Was meint Ihr?

Übrigends: Der Bug tritt nicht nur bei FormatDateTime, sondern auch bei DateTimeToStr auf.

Viele Grüße, Euklid

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Welchen fpc benutzt du Euklid ? @Pinguin kannst du das mit den aktuiellen Release Candidates vom fpc 2.2.2 auch bestätigen ?
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Beitrag von Euklid »

Christian hat geschrieben:Welchen fpc benutzt du Euklid ?
FPC 2.2.0 - was aktuelleres kommt auf mein Debian auch nicht drauf, solange es nicht in eine offizielle Lazarus-BETA eingebunden ist ;)

Tritt der Fehler in Windows nicht auf?

knight
Beiträge: 802
Registriert: Mi 13. Sep 2006, 22:30

Beitrag von knight »

Gab es da nicht eine Variable, der man mit set ein bestimmtes Zeitformat zuweisen konnte, um Unterschiede bei den Betriebssystemeinstellungen ignorieren zu können?

knight

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Beitrag von Euklid »

Habe eben ein bisschen im Bugtracker gesucht. Dieser Report scheint genau unser Problem zu beschreiben:

http://bugs.freepascal.org/view.php?id=11339" onclick="window.open(this.href);return false;

Offenbar versucht derzeit Jonas Maebe den Bug zu beseitigen.

Viele Grüße, Euklid

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Ja genau Knight, fpc initialisiert diese Variable eigentlich mit der Systemeinstellung allerdings scheint das unter Linux wohl nicht (immer) zu funktionieren. Im Windows funktionierts.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Antworten