Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - TDateTime in String und zurück wandeln


Voxe - Mi 29.06.11 17:23
Titel: TDateTime in String und zurück wandeln
Hallo zusammen,

hoffe hier kommt der Kniff :autsch:

Ein Programm, erzeugt einen Logfile. Dieser sollte mit Excel lesbar sein. Kein Problem, also mit DateTimeToStr in einen String wandeln und in einer CSV-Datei (Textdatei) abspeichern.

So weit so gut. Nun sollte dieser Logfile aufgearbeitet werden, weil ca. 1000 Einträge unübersichtlich sein können. Bzw. die Zeiten sollen addiert werden. Also zurück wandeln, auch kein Problem.

Aber auf die Schnute fällt man, wenn der erzeugende PC mit deutschem Zeitformat lief und der wandelnde im englischen Zeitformat. Heißt, der string sieht anders aus.

Klar, man muss den String umbauen. Aber wenn es in beiden Richtungen gehen soll, in welches Format ?

Oder gibt es etwas dem das Format bezüglich der Landeseinstellungen egal ist ???

Grüße und Danke im voraus, Voxe


Dude566 - Mi 29.06.11 17:31

Könnte man das nicht typisiert abspeichern, anstatt Strings in eine CSV-Datei zu schreiben? :gruebel:


Voxe - Mi 29.06.11 17:46

Man könnte, denke ich.

Leider ist das mit der CSV-Datei im Textformat eine Vorgabe (ist wohl Multi-Kulti).

Hätte ja den extended-Wert direkt reinschreiben können. Den können aber nicht Delphi-Programmierer nicht verwerten, denke ich.

Gruß Voxe


Dude566 - Mi 29.06.11 17:47

Also ich würde es eher typisiert abspeichern als in eine CSV-Datei, welche Vorgabe und wofür ist das?


Voxe - Mi 29.06.11 17:50

Hallo Dude,

die Vorgabe macht der Kunde. Passte mir auch gut, du kannst den File selbst mit Notepad ansehen.

Selbst mit nicht PC's kommst du da ran.

Gruß


colaka - Mi 29.06.11 18:00

Hallo,

statt DateTimeToStr solltest Du besser FormatDateTime verwenden. Dann bist Du unabhängig von den Systemeinstellungen und kannst das Ausgabeformat bestimmen, wie Du lustig bist.

Gruß Ebi


Voxe - Mi 29.06.11 18:12

Hallo, habe da gerade mal geschaut.

Also, passiert mir das mit LongDate- und LongTime- Formaten nicht ?


colaka - Mi 29.06.11 18:16

Nein,

Du kannst doch den Ausgabestring selbst bestimmen:
FormatDateTime('d,m,yyy h:nn', date) zum Beispiel oder wie Du es eben brauchst. Da spielen die Landeseinstellungen keine Rolle.

Gruß Ebi