2

誰かがこのコードの何が問題なのか教えてもらえますか:

ShortDateFormat := 'dd/mm/yyyy';
j:=StrToDate('05/05/1999');

私は得続けます

An unhandled exception occurred at $000000000042FA33 :
EConvertError : Invalid date format

私はfpcを使っています。

4

2 に答える 2

3

ここから(言い換え):

StrToDateはShortDateFormatを使用して実際の形式をチェックしません。y、m、dの順序を決定するためだけに使用し、DateSeparatorを使用して実際の日付区切り文字を決定します。

したがって、必要なものは次のとおりです。

ShortDateFormat := 'd/m/y';
DateSeparator := '/';
j:=StrToDate('05/05/1999');

次のいずれかについて考えてみてください。

  • 保存ShortDateFormatし、DateSeparatorこれを行う前に復元できるようにします(最初はロケールに基づいて設定されています); また
  • 実際の設定に基づく日付を使用し、これら 2 つの値をまったく変更しないでください。
于 2009-11-11T07:30:47.867 に答える
0

StrToDate呼び出しの前にこれをコードに挿入します。

Writeln(DateTimeToStr(Date));

出力に別の文字が含まれていない場合は、/この文字を文字列のセパレータとして使用する必要があります。

私のシステムでは、次のようになります11.11.2009。私がそれを使用すると、05.05.1999それは機能します。

于 2009-11-11T07:31:42.087 に答える