AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Universelle Datums Umwandlung

Ein Thema von yogie · begonnen am 26. Apr 2014 · letzter Beitrag vom 26. Apr 2014
Antwort Antwort
yogie

Registriert seit: 11. Sep 2003
Ort: bei Goslar
213 Beiträge
 
Delphi 6 Professional
 
#1

Universelle Datums Umwandlung

  Alt 26. Apr 2014, 15:11
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?
Kompatibilität ist ein Euphemismus für n i c h t einhunderprozentige Austauschbarkeit
http://b-und-l-service.de/
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Universelle Datums Umwandlung

  Alt 26. Apr 2014, 15:22
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?
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
yogie

Registriert seit: 11. Sep 2003
Ort: bei Goslar
213 Beiträge
 
Delphi 6 Professional
 
#3

AW: Universelle Datums Umwandlung

  Alt 26. Apr 2014, 15:43
... 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.
Kompatibilität ist ein Euphemismus für n i c h t einhunderprozentige Austauschbarkeit
http://b-und-l-service.de/
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Universelle Datums Umwandlung

  Alt 26. Apr 2014, 15:48
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.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#5

AW: Universelle Datums Umwandlung

  Alt 26. Apr 2014, 16:00
Das Datun und
die Uhrzeit kommen so in die Datei wie sie
auch angezeigt werden und das ist halt von Land zu
Land verschieden
Dann würde ich empfehlen die ISO 8601 anzuwenden und immer nur dieses standardisierte Datumsformat zu verwenden.

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.
fork me on Github

Geändert von sx2008 (26. Apr 2014 um 16:11 Uhr)
  Mit Zitat antworten Zitat
yogie

Registriert seit: 11. Sep 2003
Ort: bei Goslar
213 Beiträge
 
Delphi 6 Professional
 
#6

AW: Universelle Datums Umwandlung

  Alt 26. Apr 2014, 16:57
...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
Kompatibilität ist ein Euphemismus für n i c h t einhunderprozentige Austauschbarkeit
http://b-und-l-service.de/
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: Universelle Datums Umwandlung

  Alt 26. Apr 2014, 17:21
Schämen musst du dich nicht - mit der flachen Hand vor die Stirn schlagen reicht

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
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#8

AW: Universelle Datums Umwandlung

  Alt 26. Apr 2014, 17:56
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.
Da bist du aber arg ungerecht, ich kenn das Format erst seit ca 30Jahren.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:26 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