我需要转换格式为
的当前日期 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;
但是我在第二行输出错误:= StrToDate(Label1.Caption);
请告诉我如何转换日期格式并显示它?
答案 0 :(得分: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;
有关GetLocaleFormatSettings
的信息,请参阅http://delphi.about.com/library/rtl/blrtlGetLocaleFormatSettings.htm
答案 1 :(得分:1)
如果你所做的只是改变分隔符而不是数字的顺序,那么你可以简单地使用StringReplace()
,例如:
var
S: String;
S := '12|09|11';
S := StringReplace(S, '|', '/', [rfReplaceAll]);