我意识到ShortDateFormat
变量代表用户的偏好。
我也意识到如果设置改变,Delphi将使用用户的设置自动刷新ShortDateFormat
变量。
mm/dd/yy
我的客户希望所有“短日期”都显示在特定内容中,但他们不希望自己的Windows偏好设置。
mm/dd/yyyy
在我的应用程序中,有什么好方法可以更改ShortDateFormat
变量,因为它可以随时重置?
注意:包含代码格式的示例日期格式掩码,以使帖子更具视觉吸引力
答案 0 :(得分:9)
拥有自己的FormatSettings并使用所有格式例程明确地使用它而不是使用隐式版本。
它还具有线程安全的优点。
function DateTimeToStr(const DateTime: TDateTime): string;
function DateTimeToStr(const DateTime: TDateTime; const FormatSettings: TFormatSettings): string;
更新:为避免您的应用对区域设置更改做出反应,您可以将Application.UpdateFormatSettings
更改为False
。
它默认为True
中的TApplication.Create
但请注意,对于所有设置,这不是100%防弹,因为一些例程直接获取ThreadLocale。
答案 1 :(得分:8)
我同意弗朗索瓦,但我想提一下另一个选择:设置
Application.UpdateFormatSettings := False;
防止在Windows中全局更改格式设置时自动更新格式设置。