StrToDate投掷econverterror

时间:2013-04-09 09:39:40

标签: delphi

我有以下代码

aDate := StrToDate(date, GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT));


function GetLocaleFormatSettings(ALCID: integer): TFormatSettings;
//------------------------------------------------------------------------------
begin
  if (ALCID <> gLCID) then
  begin
    gLCID := ALCID;
    gFormatSettings := TFormatSettings.Create(gLCID);
    // TKR - 3/25/10 - C13689: TwoDigitYearCenturyWindow is not set via GetLocalFormatSettings
    gFormatSettings.TwoDigitYearCenturyWindow := 75;
  end;
  Result := gFormatSettings;
end;

它工作得非常好,但有时当我将系统日期格式更改为dd / mm / yyyy时,它会崩溃并抛出异常。其他时候它只是没有任何问题的价值。从其他一些SO线程我发现我们需要正确设置 DateSeparator 。但是可以根据用户设置在运行时设置吗?

注意:只有在我运行应用程序后更改日期设置时才会发生这种情况。如果我关闭应用程序并执行它,我没有收到任何错误。

0 个答案:

没有答案