Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Speichern und Laden von Datums-Werten (https://www.delphipraxis.net/61995-speichern-und-laden-von-datums-werten.html)

PeterPanino 29. Jan 2006 13:32


Speichern und Laden von Datums-Werten
 
Wer hat Erfahrungen beim Speichern und Laden von Datum-Werten (TDate) auf unterschiedlich lokalisierten Systemen (unterschiedliche Betriebssystem-Sprachen, unterschiedliche lokale Datums-Einstellungen)?

Das Problem ist dabei folgendes: Wenn Datum-Werte auf einem System in einer Datei gespeichert werden und diese selbe Datei dann auf einem anderen System mit unterschiedlichen lokalen Einstellungen (s.o.) eingelesen wird, könnten sich Probleme ergeben.

Zur Zeit speichere ich Datums-Werte, indem ich mit DateToStr diese in Strings umwandle und diese dann in einer Textdatei speichere; beim Laden der Datei verfahre ich genau umgekehrt: Die Strings werden mit StringToDate dekodiert.

Allerdings gibt es in SysUtils eine erweiterte Funktion DateToStr bzw. StrToDate, die den Typ TFormatSettings verwendet. Wer hat Erfahrungen mit dieser erweiterten Funktion?

mkinzler 29. Jan 2006 13:46

Re: Speichern und Laden von Datums-Werten
 
Da TDateTime ein Doublewert, der die Sekunden seit dem 30.12.1899 12:00 mittags enthält, ist die Speicherung besser als den von den Systemeinstellungen abhängige String.

phXql 29. Jan 2006 14:17

Re: Speichern und Laden von Datums-Werten
 
Entweder du speicherst den Double-Wert, oder:

http://www.pjh2.de/datetime/iso8601/time.php

alzaimar 29. Jan 2006 15:18

Re: Speichern und Laden von Datums-Werten
 
Zitat:

Zitat von mkinzler
Da TDateTime ein Doublewert, der die Sekunden seit dem 30.12.1899 12:00 mittags enthält, ist die Speicherung besser als den von den Systemeinstellungen abhängige String.

Das stimmt so nicht. Der Doublewert enhält die im ganzzahligen Teil die Anzahl der Tage seit dem o.g. Datum, und im Nachkommaanteil die Uhrzeit als Bruchteil eines Tages (0.25 = 6 Uhr morgens, 0.5 = 12 Uhr, 0.75 = 18 Uhr etc.)


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:43 Uhr.

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