Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   TryStrToDate klappt nicht - wer weiss Rat? (https://www.delphipraxis.net/207150-trystrtodate-klappt-nicht-wer-weiss-rat.html)

wschrabi 28. Feb 2021 18:11

TryStrToDate klappt nicht - wer weiss Rat?
 
Hallo Leute,
ich habe ein engl. DATUM mit '29/Dec/2017' vorliegen und will es mit dieser Procedure testen.
(nur ein demo)
Aber ich weiss nicht wieso er bei TryStrToDATE false gibt.

Delphi-Quellcode:
procedure test;
var
   datestr: string;
   outresult: TDateTime;
   FSin: TFormatsettings;
begin
   datestr:='29/Dec/2017';
   
   FSin := TFormatSettings.Create('us-us');
   FSin.longDateFormat:='dd/mmm/yyyy';
   FSin.Dateseparator:='/';
   if TryStrToDate(datestr,outresult,FSin) then
      begin
      ShowMessage(Format('OK fmt: dd/mmm/yyyy : %s',[datestr]))
      end
   else
      ShowMessage(Format('WRONG fmt: not dd/mmm/yyyy : %s',[datestr]))
     
end;

himitsu 28. Feb 2021 18:26

AW: TryStrToDate klappt nicht - wer weiss Rat?
 
Gelesen werden können nur Nummern, von diesen Funktionen,
auch sind nicht "beliebige" Formate möglich.

DataToStr kann viel,
aber StrToDate verwendet zum Decodieren nicht "direkt" den FormatString, sondern macht es selber und da ist nur ein kleiner Teil implementiert.
Es wird nur geschaut, in welcher Reihenfolge D, M und Y im FormatString stehen und dann immer nur als xx/xx/xx gelesen.


Du könntest vorher die FormatSettings.ShortMonthNames nehmen und durch Zahlen ersetzen, bevor der String in TryStrToDate übergeben wird.

wschrabi 28. Feb 2021 18:27

AW: TryStrToDate klappt nicht - wer weiss Rat?
 
DANKE SUPER, das hab ich nicht gedacht. BESTEN DANK!


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