Delphi StrToDate抛出错误

Delphi StrToDate抛出错误,delphi,Delphi,我有下面的代码 aDate := StrToDate(date, GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT)); function GetLocaleFormatSettings(ALCID: integer): TFormatSettings; //------------------------------------------------------------------------------ begin if (ALCID

我有下面的代码

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;
aDate:=strotdate(日期,GetLocaleFormatSettings(区域设置\系统\默认设置));
函数GetLocaleFormatSettings(ALCID:integer):t格式设置;
//------------------------------------------------------------------------------
开始
如果(ALCID gLCID),则
开始
gLCID:=ALCID;
gformatsetings:=tformatsetings.Create(gLCID);
//TKR-3/25/10-C13689:TwoDigitYearCenturyWindow未通过GetLocalFormatSettings设置
gFormatSettings.TwoDigitYearCenturyWindow:=75;
结束;
结果:=G格式设置;
结束;
它工作得非常好,但有时当我将系统日期格式更改为dd/mm/yyyy时,它会崩溃并引发异常。其他时候,它只是获取值,没有任何问题。从其他一些SO线程中,我发现我们需要正确设置日期分隔符。但是可以根据用户设置在运行时设置它吗


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

您应该尝试vartodate您使用的是什么Delphi版本,它是否包含VCL源代码?您是否尝试过启用调试DCU并实际调试问题以确定问题所在?我正在使用Delphi XE,是的,它包括VCLsource@SirRufo应该是VarToDateTIME?;)@伊帕斯·耶普(我失去了时间):o)