delphi程序不受WINDOWS日期格式的影响

如果WINDOWS系统的短日期格式为“yyyy/m/d”,执行下面的代码会报错:2013-01-29 00:00:00不是合法的日期

在主程序打开时更改windows日期格式

 //更改windows日期格式

SetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SSHORTDATE, ‘yyyy-MM-dd‘);
Application.UpdateFormatSettings := False;

但问题又来了,现在是win10的系统,用户还一定得要用管理员权限打开才行。

可用户打开报错,可不管这么多的,直接说程序问题,那只能设定程序本身所使用的日期时间格式并配合使用formatdatetime

//更改程序本身所使用日期

with FormatSettings do
begin
  LongDateFormat := 'yyyy-MM-dd';
  ShortDateFormat := 'yyyy-MM-dd';
  LongTimeFormat := 'hh:nn:ss';
  ShortTimeFormat := 'hh:nn:ss';
  DateSeparator := '-';
  timeSeparator := ':';
end;

运行主程序并调用dll时不在报错,

原文地址:https://www.cnblogs.com/approx/p/11726894.html