CSVファイルで作成されている日付のデータで
'2006/07/14 14:15:25' のようなデータがあります。
このデータを StrToDateTime を使って TDateTime 型にするのですが
OSが英語の場合は例外が発生してしまいます。
また、逆に、DateTimeToStr を使って作成された文字列が
'7/14/2006 2:15:25 PM' となってしまい、
CSVファイルを作成する場合にフォーマットが変わってしまいます。
どのようにすると簡単にできるのでしょうか?
やはり、文字列を解析して、年・月・日・時・分・秒に分解して
StrToInt や IntToStr を駆使して StrToDateTimeEx や
DateTimeToStrEx などの関数を作るしかないのでしょうか?
よろしくお願いします
ShortDateFormatはどうでしょう。
Delphi6 だとこれでうまくいきます。
procedure TForm1.Button1Click(Sender: TObject);
var
t: TDateTime;
begin
t := VarToDateTime('2006/07/14 14:15:25');
Label1.Caption := FormatDateTime('yyyy/mm/dd/ hh/nn/ss', t);
end;
訂正
procedure TForm1.Button1Click(Sender: TObject);
var
t: TDateTime;
begin
t := VarToDateTime('2006/07/14 14:15:25');
Label1.Caption := FormatDateTime('yyyy/mm/dd/ hh:nn:ss',t);
end;
お世話になりす。
どうも、すみません。
VarToDateTimeは調べてテストプロを作ってみたのですが
うまく動いていなかったので、質問させていただいたのですが、
再度ソースを確認してみると、テストプロに問題があったようです。
VarToDateTime でうまくいきました。
どうもありがとうございます。
それから、FormatDateTime ですが、
DateTimeToString を見つけたので、こちらを使ってしまいました。
申し訳ありません。
FormatDateTime とDateTimeToString の内部処理的な違いは
よくわかりませんが、動作に問題がないようなので DateTimeToString
のままにしておきます。(いたるところで使用しているので
変更に時間がかかり、変更ミスでバグ作るかも知れないので・・・)
でも、問題が起こる可能性があるようでしたら教えてください。
よろしくおねがいします。
ひとまず、解決とさせていただきます。
ツイート | ![]() |