다음과 같이 문자열 배열이 있습니다.델파이에서 MM/DD/YYYY 형식으로 날짜를 표시하는 방법
Param : array[1..5] of string = ('US','Dollor','27/03/2017','IND','INR');
날짜가 포함 된 문자열을 찾아 MM/DD/YYYY 형식으로 지정해야합니다. 이 작업을 수행하려면 루프를 실행하고 TryStrToDate의 각 문자열을 전달해야합니다. 문자열이 날짜 유형이면 true를 반환하고 그 문자열을 원하는 형식으로 서식을 지정합니다. 내 코드 파람에서 여기
for i := 1 to ParamCount do
begin
if TryStrToDate(Param[i],DateValue)=true then
begin
Param[i] := DateToStr(StrToDate(Param[i]));
ShowMessage(Param[i]);
end;
end;
날짜 TryStrToDate 이해 할 수없는, 그래서 [] DD/MM은/년에 다음과 같이한다. 코드를 어떻게 바꿀 수 있습니까? 이 최종 결과는 다음과 아래와 같이 마크의 솔루션을 사용
Param : array[1..5] of string = ('US','Dollor','03/27/2017','IND','INR');
해야 후 :
GetLocaleFormatSettings(ALocID, AFormatSettings);
AFormatSettings.ShortDateFormat := 'DD/MM/YYYY';
for i := 1 to ParamCount do
begin
if TryStrToDate(param[i], DateValue, AFormatSettings) = False then
Continue;
try
DateVal := StrToDate(param[i], AFormatSettings);
param[i] := DateToStr(DateVal);
Continue;
except
Continue;
end;
end;
먼저 문자열을 날짜로 식별하는 규칙을 결정해야합니다. 당신의 규칙은 무엇입니까? –
@DavidHeffernan 그 전체 증거가 아니지만 문자열을 확인하고 있는데, '/'가 포함되어 있으면 날짜로 간주합니다. – abhayk
형식이 MM/DD가 아닌 DD/MM임을 어떻게 알 수 있습니까? –