[fpc-pascal] Why has StrToDate() failing under FPC 2.3.1 (64bit)

Graeme Geldenhuys graemeg.lists at gmail.com
Tue Oct 20 12:45:54 CEST 2009


On 20/10/2009, Michael Van Canneyt <michael at freepascal.org> wrote:
>
>  The error is correct, since 05/05/1999 is not a valid date.
>  It should use - instead of / . I've adapted the example.


But couldn't you simply have forced DateSeparator to "-".

Also could we try not to have such an obscure example - using day and
month as the same value.! It would be much better and informative, if
the day value was greater than 12. Clearly distinguish between day and
month values.

eg:

Begin
  Writeln ('ShortDateFormat ',ShortDateFormat);
  TestStr(DateTimeToStr(Date));
  TestStr('16'+DateSeparator+'05'+DateSeparator+'1999');
  TestStr('16'+DateSeparator+'9');
  TestStr('16');
End.


Now you can clearly see when and where the day and month are
specified. If this causes issues on various locales, then maybe the
example could be hard-coded to the International ISO 8601 date format.

eg:

Begin
  ShortDateFormat = 'y-m-d';

{or maybe even better
  ShortDateFormat = 'y/m/d';
  DateSeparator = '-';
  TestStr(1999-05-16');

}


  Writeln ('ShortDateFormat ',ShortDateFormat);
  TestStr(DateTimeToStr(Date));
  TestStr('16'+DateSeparator+'05'+DateSeparator+'1999');
  TestStr('16'+DateSeparator+'9');
  TestStr('16');
End.



-- 
Regards,
  - Graeme -


_______________________________________________
fpGUI - a cross-platform Free Pascal GUI toolkit
http://opensoft.homeip.net/fpgui/



More information about the fpc-pascal mailing list