Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   DateTime in Datei speichern, aber nicht Double (https://www.delphipraxis.net/174499-datetime-datei-speichern-aber-nicht-double.html)

Getox 25. Apr 2013 14:28

Delphi-Version: 2007

DateTime in Datei speichern, aber nicht Double
 
Moin,

Ich stehe da grade vor einem Problem:

Ich habe da Variablen, des Typs tDateTime, was ja im Grunde ein Double ist. Diese Zeitpunkte habe ich im Verlaufe des Programms mit "now" in meine Variable geschrieben.

Die Zeitpunkte (mit Datum und Uhrzeit) habe ich in eine Textdatei geschrieben, doch leider nur in Double. Das ist aber nicht ausreichend, da jemand der in diese Datei schaut, die Zeitpunkte nicht ablesen kann.

Nun was ich brauche:

Ich soll die Zeitpunkte so in der Datei ablegen, dass sie zum einen Lesbar sind und zum anderen überall auf der Welt unmissverständlich sind (Amis ziehen ja den Monat nach vorne, weshalb "wir" oft Monat und Tag verwechseln und andersrum auch. Ich brauche eine Schreibweise, welche in Amerika UND hier direkt verstanden wird. Zusätzlich muss ich dieses Datum auch wieder aus der Datei in mein Programm einlesen können.

Hat jemand eine Idee, was ich da machen kann?

Bernhard Geyer 25. Apr 2013 14:31

AW: DateTime in Datei speichern, aber nicht Double
 
Wie wäre es mit mit dem ISO-Format (http://de.wikipedia.org/wiki/ISO_8601)

p80286 25. Apr 2013 14:35

AW: DateTime in Datei speichern, aber nicht Double
 
ISO-Datum:
YYYYMMDD

Gruß
K-H

Stevie 25. Apr 2013 16:28

AW: DateTime in Datei speichern, aber nicht Double
 
Ich würd DateTimeToXMLTime empfehlen.

Und noch ein paar Infos zu dem Thema.

hathor 25. Apr 2013 16:50

AW: DateTime in Datei speichern, aber nicht Double
 
Beispiele:

Delphi-Quellcode:
FormatDateTime('yyyymmdd - hh:mm', now);
FormatDateTime('yyyy-mm-dd - hh:mm', now);
FormatDateTime('yyyy/mm/dd - hh:mm', now);

Bernhard Geyer 25. Apr 2013 19:21

AW: DateTime in Datei speichern, aber nicht Double
 
Zitat:

Zitat von Stevie (Beitrag 1212910)
Ich würd DateTimeToXMLTime empfehlen.

Das verwendet das ISO-Datumsformat.


Zitat:

Zitat von hathor (Beitrag 1212911)
Beispiele:
Delphi-Quellcode:
FormatDateTime('yyyy/mm/dd - hh:mm', now);

Blos nicht. Es reicht schon wenn irgendwelche Idi*** dd-mm-yyyy verwenden.

musicman56 25. Apr 2013 19:54

AW: DateTime in Datei speichern, aber nicht Double
 
Hallo,

ich denke da bleibt keine andere andere Wahl als das Datum als Double UND im Klartext mit FormatDateTime in die Textdatei zu schreiben, und den Double-Wert in eindeutige Begrenzungs-Zeichen (z.B. geschweifte Klammer) zu setzen, damit du dann wieder zurückrechnen kannst. Als Format für FormatDateTime würde ich ShortDateFormat aus der SysUtils.pas nehmen

bcvs 25. Apr 2013 20:52

AW: DateTime in Datei speichern, aber nicht Double
 
DateTimeToXMLTime gab es m.W. in Delphi 2007 noch nicht. Bleibt also FormatDateTime oder DateTimeToString.


Zitat:

Zitat von musicman56 (Beitrag 1212929)
Hallo,
ich denke da bleibt keine andere andere Wahl als das Datum als Double UND im Klartext mit FormatDateTime in die Textdatei zu schreiben,

Wieso dass denn?
Man kann es doch mit StrToDateTime zurücklesen. Muss aber auf die FormatSettings achten.

Zitat:

Als Format für FormatDateTime würde ich ShortDateFormat aus der SysUtils.pas nehmen
Nein!!!
Gerade das liefert doch je nach Land ein anderes Datumsformat, was der OP ja vermeiden will.

Stevie 25. Apr 2013 22:34

AW: DateTime in Datei speichern, aber nicht Double
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1212924)
Zitat:

Zitat von Stevie (Beitrag 1212910)
Ich würd DateTimeToXMLTime empfehlen.

Das verwendet das ISO-Datumsformat.

Ja, genau deshalb empfehle ich ja die Verwendung dieser Funktion - hilft imo mehr als nen Wikipedia Link :roll:

Zitat:

Zitat von bcvs (Beitrag 1212935)
DateTimeToXMLTime gab es m.W. in Delphi 2007 noch nicht.

Gibts schon mindestens seit D7.

Getox 26. Apr 2013 07:21

AW: DateTime in Datei speichern, aber nicht Double
 
Ok. Ich hab nun gelernt, dass es ein international gültiges ISO Format für Zeiten gibt und wie dieses aussieht. Das find ich schon mal super.

Ich habe nun benutzt:

DateTimeToXMLTime ()
und
XMLTimeToDateTime ()

Beide auch schon bei Delphi 2007 in der Unit XSBuiltIns vorhanden. Danke für den Tipp.

Wenn ich ein tDateTime mit diesen Funktion einmal hin und her wechsele, ändern sich die Nachkommastellen minimal, weil er die Millisekunden abzuschneiden scheint, was aber nicht weiter schlimm ist, da ich diese nicht brauche.

Somit ist mir auf jeden Fall geholfen und ich kann weiter machen.

Danke für die Beteiligung und Hilfestellungen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:03 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz