文字列を TDateTime に変換する
|
文字通り StrToDateTime という関数もあるんですが、これは yyyy/mm/dd などの形式にしか対応していません。ちょっとひねって VarToDateTime を使えば、ほぼどんな形式でもうまく変換できます。string -> Variant は自動で変換されるので、そのまま文字列を渡すだけで使えます。
MyDateTime := VarToDateTime('平成1年1月1日午後1時1分1秒');
全角数字もOKですが、さすがに '平成九年九月九日' は無理でした。
VarToDateTime('1999/1/2') = VarToDateTime('1/2/1999');
の結果は、True になりました。
注意点として、VerToDateTime は StrToDateTime と違い、ShortDateFormat グローバル変数を見ていないようです。
ShortDateFormat:='DD/MM/YY';
ShowMessage(FloatToStr(VarToDateTime('2/1/1999')-VarToDateTime('平成11年2月1日')));
の結果は 0 になります。 |
|