![]() |
Universelle Datums Umwandlung
Hallo zusammen,
in meinen Programmen verwende ich immer eine automatische Korrektur des Dezimaltrenners in dem ich Punkt bzw. Komma durch decimalseparator ersetze. Das hat den Vorteil, das Datensätze die im Ausland erzeugt wurden auch in Deutschland verarbeitet werden können. Nun suche ich eine Entsprechung für die diversen Datums/Zeit-Formate. D.h. ich möchte ein Datum (eine Zeit) gleichgültig in welchem Format sie in einer Datei abgelegt ist, in das Datumsformat des Arbeitsplatzes überführen. Gibt es da einen eingeführte Methode? |
AW: Universelle Datums Umwandlung
Den Sinn kann ich nicht verstehen, bin damit wohl auch nicht alleine und deshalb gibt es sowas auch nicht.
Das UI hat eine durch das Betriebssystem vorgegebene Formatierung der Werte (Datum, Uhrzeit, Dezimaltrenner). Damit kann man dem Benutzer diese Werte präsentieren und auch entgegennehmen. In der Datenschicht gibt es genau ein Format für diese Speicherung. Wie war das Problem noch mal? |
AW: Universelle Datums Umwandlung
... super schnell ...
Eventuell ist das Ganze bei mir ja ein Designproblem. Ich speichere die Daten als CSV Datei. Das muß aus bestimmten Gründen so sein. Das Datun und die Uhrzeit kommen so in die Datei wie sie auch angezeigt werden und das ist halt von Land zu Land verschieden. Bekomme ich nun eine Datensatz aus Kanada kann ich zwar Datun und Uhrzeit (wie gespeichert) lesen und anzeigen, nur wenn ich dann Rechnungen z.B. Mit der Zeitinformation ausführen möchte, klappt das eben nur wenn auf dem Arbeitplatz das "richtige" Zeitformat eingestellt ist. |
AW: Universelle Datums Umwandlung
Ja und das ist eben falsch.
Deine Anwendung muss sich auf der einen Seite mit der CSV-Datei unterhalten und auf der anderen Seite mit dem Benutzer. Für die Kommunikation mit dem Benutzer verwende die Format-Einstellung des Systems, für die Kommunikation mit der CSV eine Format-Einstellung, die immer gleich ist. Du willst doch nicht das speichern, was der Benutzer eingegeben hat, sondern das, was er damit ausdrücken will. |
AW: Universelle Datums Umwandlung
Zitat:
![]() Ansonsten: eine Funktion die jedes beliebige Datumsformat in ein TDateTime verwandeln kann, wird es nicht geben weil man das Datumsformat nicht eindeutig erkennen kann. "04.03.14" - ist das der 4. März 2014 oder der 3. April 2014 oder der 14. April 2004? Dagegen ist "2014-03-04" völlig eindeutig. Würde man der Funktion zur Datums/Zeitumwandlung ein Pattern mitgeben (z.B. "mm.dd.yy") dann wäre die Umwandlung natürlich möglich. PS: Wer verdient sein Geld als Softwareentwickler und kennt die ISO 8601 nicht bzw. hat noch nie die ISO in seiner Software verwendet? Bitte melden und kräftig schämen. |
AW: Universelle Datums Umwandlung
...ok, nun weiß ich Bescheid und schäme mich ...
eventuell zur Erklärung: es handelt sich um eine Portierung einer relativ alten Awendung, aber das entschuldigt natürlich nicht, hier nicht richtig nachgedacht zu haben. Ich werde die Speicherung nach ISO wohl nachrüsten. Danke für die Hinweise |
AW: Universelle Datums Umwandlung
Schämen musst du dich nicht - mit der flachen Hand vor die Stirn schlagen reicht :mrgreen:
Die ISO-Norm musst du auch nicht umsetzen, ist aber durchaus ratsam. Wichtig ist nur, dass die Daten unabhängig von den lokalen Format-Einstellungen immer gleichartig gespeichert werden. Mit der ISO-Norm machst du genau das und die Vorgaben (was ist gleichartig) sind schon definiert ;) |
AW: Universelle Datums Umwandlung
Zitat:
Gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz