我意识到 ShortDateFormat
变量代表用户的偏好。
我还意识到,如果设置发生更改,Delphi 将使用用户的设置自动刷新 ShortDateFormat
变量。
mm/dd/yy
我有一位客户希望所有“短日期”都显示在特定的位置,但他们不希望显示自己的 Windows 首选项。
mm/dd/yyyy
考虑到可以随时重置,在我的应用程序中全局更改 ShortDateFormat
变量的好方法是什么?
注意:包含代码格式的示例日期格式掩码,以使帖子更具视觉吸引力
最佳答案
拥有自己的 FormatSettings 并将其与所有格式例程一起显式使用,而不是使用隐式版本。
它还有线程安全的优点。
function DateTimeToStr(const DateTime: TDateTime): string;
function DateTimeToStr(const DateTime: TDateTime; const FormatSettings: TFormatSettings): string;
更新:为避免您的应用程序对区域设置更改使用react,您可以将 Application.UpdateFormatSettings
更改为 False
。
TApplication.Create
中默认为 True
。
但请注意,这并不是对所有设置 100% 安全,因为某些例程会直接获取 ThreadLocale。
关于Delphi:如何重写 ShortDateFormat?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3120812/