gpt4 book ai didi

delphi - TFormatSettings.Create ('en-US' ) 在不同平台上返回不同的设置

转载 作者:行者123 更新时间:2023-12-02 17:32:00 27 4
gpt4 key购买 nike

AndroidTFormatSettings.Create('en-US') 返回 ShortDateFormat = 'm/d/yy' 是否正常> 但在 Windows 上返回 ShortDateFormat = 'M/d/yyyy' ?这是一个错误吗?我认为设置必须与平台保持一致。

最佳答案

TFormatSetting 尽可能使用特定于平台的设置,即使跨平台使用相同的区域设置也是如此。

在所有平台上,TFormatSettings.Create(LocaleName)LocalName 转换为特定于平台的 TLocaleID,然后调用 TFormatSettings .Create(LocaleID).

在 Windows 上,LocaleName 通过 LocaleNameToLCID() 转换为 TLocaleID(唉,LCID)在 Vista 及更高版本上,以及在早期版本上的 EnumSystemLocales()'en-US'LCID 为 1033。如果 Win32 API ,则 'm/d/yy' 是 RTL 的默认值GetLocaleInfo() 函数不会返回指定 LocaleIDLOCALE_SSHORTDATE 字符串。在您的系统上,Windows 将返回 LCID 1033 的'M/d/yyyy',因此不使用 RTL 的默认值。

在 Android 上,RTL 使用的底层本地化库是跨平台 ICU 库,因此只需将 LocalName 编码为 UTF 即可将其转换为 TLocaleID -8,然后按原样使用。如果 ICU 未返回指定 LocaleIDUDAT_SHORT 字符串,则 'm/d/y' 是 RTL 的默认值。在您的系统上,ICU 为 'en-US' 返回 'm/d/yy',因此不使用 RTL 的默认值。

关于delphi - TFormatSettings.Create ('en-US' ) 在不同平台上返回不同的设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50590627/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com