Windows 如何显示格式化的月份名称?
一些语言,如捷克语或斯洛伐克语,会根据其使用情况改变拼写。但是,Java中的Windows 如何显示格式化的月份名称?,windows,delphi,winapi,delphi-10.2-tokyo,Windows,Delphi,Winapi,Delphi 10.2 Tokyo,一些语言,如捷克语或斯洛伐克语,会根据其使用情况改变拼写。但是,Java中的FormatDateTime没有SimpleDateFormat那么多选项,您可以在格式化的MMMM和当月的独立表单LLLL之间切换 我使用这个符号来显示独立的表单30。leden 2019而不是格式化形式30。莱德纳2019。我想应该有一些Windows函数,但我找不到它,我想避免编写自己的库 FormatDateTime('d. mmmm yyyy', Today); 对于俄语语言环境,这将返回正确的短语:31а
FormatDateTime
没有SimpleDateFormat
那么多选项,您可以在格式化的MMMM
和当月的独立表单LLLL
之间切换
我使用这个符号来显示独立的表单30。leden 2019
而不是格式化形式30。莱德纳2019
。我想应该有一些Windows函数,但我找不到它,我想避免编写自己的库
FormatDateTime('d. mmmm yyyy', Today);
对于俄语语言环境,这将返回正确的短语:31аааа2019Γ。(非主格ааааа
)
对于捷克语地区LCID=$405
它返回31。ledna 2019
有一个重载,该重载将a作为输入,其中包含和成员,您可以根据需要进行自定义(除其他外)。在您的示例中,您需要LongMonthNames
您可以构造t格式设置
来指定所需的区域设置:
var
fmt: TFormatSettings;
fmt := TFormatSettings.Create(...); //specify desired locale...
// customize fmt as needed...
FormatDateTime('d. mmmm yyyy', Today, fmt);
如果您根本没有指定任何
t格式设置
,则将使用全局变量,该变量在应用程序启动时使用当前用户的默认区域设置进行初始化 谢谢,我知道这一点,但如果我没有弄错的话,它总是只加载一个独立的表单,如果我想使用一个格式化的表单,我必须创建自己的表单,除了更改格式设置之外,仍然无法在它们之间切换。@Triber如我所说,您可以根据需要自定义t格式设置
,然后将其传递到FormatDateTime()
。因此,根据使用返回字符串的上下文,可以根据需要预加载不同的月份名称。
GetDateFormat($405, DATE_LONGDATE, nil, nil, DateStr, 256);
var
fmt: TFormatSettings;
fmt := TFormatSettings.Create(...); //specify desired locale...
// customize fmt as needed...
FormatDateTime('d. mmmm yyyy', Today, fmt);