実行時に「DateTimePciker.Date」の数値を取得しています。しかし、「08/10/2012」のような値が必要です。数値の代わりにDATE値を取得するには?
実行時の画像を表示:
実行時に「DateTimePciker.Date」の数値を取得しています。しかし、「08/10/2012」のような値が必要です。数値の代わりにDATE値を取得するには?
実行時の画像を表示:
TDateTime
古い Delphi バージョンでは期待どおりに表示されません。TDateTime
は浮動小数点型であり、デバッガーが浮動小数点値を表示するのはまったく正常です。DateTimeToStr()
値を表示する必要がある場合は、を使用して変換することを検討してください。
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
。日時の値をテキスト形式で表す必要がある場合は、適切な変換関数を使用してください。