Delphi:如何重写 ShortDateFormat?

标签 delphi localization date-format

我意识到 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/

相关文章:

c# - Windows 命名管道无法正确响应并发请求

delphi - 如何在 TListView 列上显示排序箭头?

c# - 在 asp.net mvc4 中将 Url 翻译为另一种语言以用于 SEO 目的

c# - .resx 表单图标级联更新

javascript Regex 日期早于 1970 年 1 月 1 日

Delphi - 确保调用类构造函数

delphi - 如何使 TListView 标题标题在 VCL 样式应用程序中居中?

javascript - 浏览器语言。奇怪的行为 - Javascript

php - 日期未更新的 MySQL/PHP 更新查询

c# - 用 MySql 可用于 BulkLoad 的格式替换大文件中的日期