1

次の形式の現在の日付を変換する必要があります。

     MM|dd|yy     ---  12|09|11

形式を次のように変換する必要があります。

     MM/dd/yy     --12/09/11

現在のシステム日付セパレータは次のとおりです。

   -'|'

コードを次のように使用します。

  var
     sDateOne : TDate ;
 begin
   Label1.Caption:=datetostr(now);              {this display as 12|09|11}
   ShortDateFormat:='MM/dd/yy';
   DateSeparator:='/';
   sDateOne:=StrToDate(Label1.Caption);
   FormatDateTime('MM/dd/yy',sDateOne );
   Label2.Caption:=datetostr(sDateOne);         {this i want as 12/09/11 }
 end;

しかし、行 sDateOne:=StrToDate(Label1.Caption); でエラーが発生します。 ここに画像の説明を入力

日付形式を変換して表示する方法を教えてください。

4

2 に答える 2

4

コードの修正バージョンは次のとおりです。

var
  DateOne: TDate;
  LocalFormatSettings: TFormatSettings;
begin
  Label1.Caption := datetostr(now);              {this display as 12|09|11}
  DateOne := StrToDate(Label1.Caption);
  GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT, LocalFormatSettings);
  LocalFormatSettings.DateSeparator := '/';
  Label2.Caption := FormatDateTime('MM/dd/yy', DateOne, LocalFormatSettings); {this i want as 12/09/11 }
end;

詳細については、 http://delphi.about.com/library/rtl/blrtlGetLocaleFormatSettings.htmGetLocaleFormatSettingsを参照してください。

于 2011-12-09T06:45:45.013 に答える
1

数字の順序ではなく、区切り文字を変更するだけの場合は、次のように単純に使用できますStringReplace()

var
  S: String;

S := '12|09|11';
S := StringReplace(S, '|', '/', [rfReplaceAll]);
于 2011-12-09T09:15:17.880 に答える