- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 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()LocaleID
的 LOCALE_SSHORTDATE
字符串。在您的系统上,Windows 将返回 LCID 1033 的'M/d/yyyy'
,因此不使用 RTL 的默认值。
在 Android 上,RTL 使用的底层本地化库是跨平台 ICU 库,因此只需将 LocalName
编码为 UTF 即可将其转换为 TLocaleID
-8,然后按原样使用。如果 ICU 未返回指定 LocaleID
的 UDAT_SHORT
字符串,则 'm/d/y'
是 RTL 的默认值。在您的系统上,ICU 为 'en-US'
返回 'm/d/yy'
,因此不使用 RTL 的默认值。
关于delphi - TFormatSettings.Create ('en-US' ) 在不同平台上返回不同的设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50590627/
在执行TFormatSettings.Create时,我得到以下格式 ShortDateFormat: 'dd/MM/yyyy' ShortTimeFormat: 'hh:mm' 但是,根据各种For
我有这个程序: procedure Initialize(out FormatSettings: TFormatSettings); const LongDayNamesEx : array [1
我在 Delphi XE 中有以下内容: fSettings := TFormatSettings.Create(LOCALE_USER_DEFAULT); 但我总是在编译时收到警告: W1002 S
我希望以下代码能够工作: program Project3; {$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils; var FS: TForm
我正在将一个旧项目移植到 Delphi XE,并且在下面的代码中收到此警告。 function RemoveThousandSeperator(Text: String) : String; Var
此代码应该在 Delphi XE2 中工作,但在 StrtoDateTime 转换中给出“不是有效的日期和时间”错误: procedure TForm2.Button1Click(Sender: TO
在 AndroidTFormatSettings.Create('en-US') 返回 ShortDateFormat = 'm/d/yy' 是否正常> 但在 Windows 上返回 ShortDat
我只是想将 Delphi 2007 应用程序转换为 Delphi 10。在该软件的 2007 版本中,我使用 TFormatSettings 常量。由于 TFormatSettings 类型在两者之间
只是出于好奇:为什么这段代码给出 AV 而不是抛出异常? procedure TForm1.Button1Click(Sender: TObject); var fs: TFormatSettings
我正在编写一个多平台单元,其中包括使用 Delphi 的 TFormatSettings。我希望创建一个全局 TFormatSettings 来让我访问我的家(英国)位置信息,而不管我的代码将被使用的
如何从 TTime 变量中删除秒,而不需要使用 TimeToStr(const datetime:TDateTime; const formatsettings:TFormatSettings) 来获
我正在尝试从 10,000.00 获取 Double: aProductData.BuyPriceHT := 10000; BuyPriceHTEdit.Text := FormatFloat('#,
我是一名优秀的程序员,十分优秀!