Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi RÜckformatierung von FormatDateTime (https://www.delphipraxis.net/123681-rueckformatierung-von-formatdatetime.html)

in_da_hood 6. Nov 2008 15:30


RÜckformatierung von FormatDateTime
 
Hallo,

ich möchte aus der Eingabe eines Strings, die in der Form 'hh:nn:ss' dargestellt wird, und somit eine Dauer darstellen soll,
den passenden Wert der Zeit dafür herausbekommen.
Der andere Weg, von einer Dauer (zum Beispiel entspricht 1 ja für einen Tag bzw 24Stunden), in dieses Format zu formatieren, habe ich schon herausgefunden:

edit1.Text:=FormatDateTime('hh:nn:ss',Dauer);

So würde die Dauer mit der Zeitangabe 0,5 beispielsweise im Edit1 als 12:00:00 angezeigt werden.

Gibt es eine Funktion zur Rückformatierung?
Oder weiß jemand, wie ich das realisieren kann?

Vielen Dank schonmal im Voraus.

DeddyH 6. Nov 2008 16:44

Re: RÜckformatierung von FormatDateTime
 
Das müsste doch mit StrToTime gehen, wenn ich nicht irre.

in_da_hood 6. Nov 2008 16:48

Re: RÜckformatierung von FormatDateTime
 
Das dachte ich auch.
Allerdings habe ich denn, wenn ich zb 0.5 eingegeben habe, eine Fehlermeldung erhalten, dass dies kein gültiges Zeitformat ist....

DeddyH 6. Nov 2008 16:50

Re: RÜckformatierung von FormatDateTime
 
Ich dachte, Du willst den String wieder in ein TDateTime wandeln. 0.5 musst Du nicht wandeln, da TDateTime intern auch nur ein double ist.

in_da_hood 6. Nov 2008 16:53

Re: RÜckformatierung von FormatDateTime
 
Achso ja klar.
Wie würde das im Quellcode mit welchen Formaten denn aussehen, wenn ich zb a als string('hh:nn:ss') einlese und b als TDateTime ausgeben will?

DeddyH 6. Nov 2008 17:00

Re: RÜckformatierung von FormatDateTime
 
Ich habe das jetzt nicht genau verstanden, was Du meinst, aber hier ein Beispiel aus dem Kopf:
Delphi-Quellcode:
var s: string;
    t: TDateTime;
begin
  s := '19:15:00';
  t := StrToTime(s);
  t := t + 0.5;
  ShowMessage(FormatDateTime('hh:nn:ss',t));
end;
Wenn ich keinen Fehler gemacht habe, müsste "07:15:00" ausgegeben werden.

[edit] s und t verwechselt :oops: [/edit]

in_da_hood 6. Nov 2008 17:05

Re: RÜckformatierung von FormatDateTime
 
Ja Danke^^

Das ist das wonach ich gesucht habe :)

Union 6. Nov 2008 17:21

Re: RÜckformatierung von FormatDateTime
 
Bitte dran denken dass dies von den Regionaleinstellungen auf dem PC abhängig ist. Wenn man auf einem auf "Deutsch" eingestellten PC "12:00 AM" mit StrToTime umwandeln will, gibt es einen EConvertError.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:07 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