2

実行時に「DateTimePciker.Date」の数値を取得しています。しかし、「08/10/2012」のような値が必要です。数値の代わりにDATE値を取得するには?

実行時の画像を表示:


ここに画像の説明を入力

4

2 に答える 2

7

TDateTime古い Delphi バージョンでは期待どおりに表示されません。TDateTimeは浮動小数点型であり、デバッガーが浮動小数点値を表示するのはまったく正常です。DateTimeToStr()値を表示する必要がある場合は、を使用して変換することを検討してください。

于 2012-10-08T07:51:01.453 に答える
6

Delphiタイプは、ドキュメントTDateTimeで次のように説明されています。

TDateTimeクラスは、日時値を保持するvalデータメンバー(doubleとして宣言)を継承します。TDateTime値の整数部分は、1899年12月30日から経過した日数です。TDateTime値の小数部分、時刻です。

System.pasタイプでは次のように宣言されます:

TDateTime = type Double;

の値41188.668981は完全に有効なTDateTime値です。41188.668981これは、Delphiの日時エポックから数日後の時点を表します。DateTimeToStr()それを人間が読める形式に変換するために呼び出します。日付部分のみを表示し、時刻を表示したくない場合は、DateToStr()代わりにを使用してください。

Writeln(DateTimeToStr(41188.668981));
Writeln(DateToStr(41188.668981));

その結果、この出力が得られます

2012年6月10日16:03:19
2012年6月10日

要約すると、コードは期待どおりに機能しています。表示される値は、まさにあなたが期待するものですTDateTime。日時の値をテキスト形式で表す必要がある場合は、適切な変換関数を使用してください。

于 2012-10-08T09:29:39.073 に答える