Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Datum anhand Format umwandeln (https://www.delphipraxis.net/174762-datum-anhand-format-umwandeln.html)

Hausmarke 14. Mai 2013 09:00

AW: Datum anhand Format umwandeln
 
wenn ich das richtig verstehe kann ich bei der überladenen version das format mit angeben. Allerdings bezieht sich dies nur auf das Ausgabeformat.
Das problem liegt nicht in der Ausgabe der Daten, sondern im auslesen nach vorgegebenen Format.

korrigiert mich wenn ich das falsch interpretiert habe.


noch eine frage am rande:
wie bekomme ich eine 2 stellige jahreszahl bsp: 67 in eine 4 stellige jahreszahl bsp: 1967?

mkinzler 14. Mai 2013 09:05

AW: Datum anhand Format umwandeln
 
Das Zielformat ist immer ein Datetime. Das Format bezieht sich auf das Format im String (Input)

Hausmarke 14. Mai 2013 09:40

AW: Datum anhand Format umwandeln
 
wie muss ich die format variable deklarieren?
unten stehender quellcode bringt mir den fehler, das die eingelesene Zahl kein Datum ist.

Ich schätze das ich das format der falschen variable übergebe.

[DP]
var format : Tformatsettings;
begin
format.shortdateformat:=edit2.text;
edit3.text:= datetostr(strtodate(edit1.Text,format));
end;
[/DP]

baumina 14. Mai 2013 09:49

AW: Datum anhand Format umwandeln
 
Wie DeddyH schon erwähnte, geht Tformatsettings nicht ohne DateSeparator, deswegen ist das so für dich unbrauchbar.

Namenloser 14. Mai 2013 10:00

AW: Datum anhand Format umwandeln
 
Ungetestet und unoptimiert:
Delphi-Quellcode:
function MyStrToDate(Str, Format: String): TDate;
var
  Settings: TFormatSettings;
  i: integer;
const
  SEPARATOR = '/';
begin
  assert(length(Str) = length(Format));
  i := 2;
  while i <= length(Format) do
  begin
    if Format[i] <> Format[i-1] then
    begin
      Insert(SEPARATOR, Format, i);
      Insert(SEPARATOR, Str, i);
      inc(i);
    end;
    inc(i);
  end;
  Settings.ShortDateFormat := Format;
  Settings.DateSeparator := SEPARATOR;
  Result := StrToDate(Str, Settings);
end;

MyStrToDate('20130705', 'yyyymmdd');

Hausmarke 14. Mai 2013 10:37

AW: Datum anhand Format umwandeln
 
jepp, der fehlende separator macht mir den strich durch die rechnung.

in dem fall bleibe ich bei meiner function.


Danke für eure ideen und mühen :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:30 Uhr.
Seite 2 von 2     12   

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