0

我有以下一段代码

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。但是可以根据用户设置在运行时设置它吗?

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

4

0 回答 0