如何显示格式化的月份名称?

Tri*_*ber 2 windows delphi winapi delphi-10.2-tokyo

某些语言(如捷克语或斯洛伐克语)会根据其使用情况更改拼写.但是FormatDateTime没有像SimpleDateFormatJava 那样多的选项,在Java中,您可以在本月的格式化MMMM和独立形式之间切换LLLL.

我正在使用这种表示独立形式30. leden 2019而不是格式化表单的表示法30. ledna 2019.我想应该有一些Windows功能,但我找不到它,我想避免编写自己的库.

FormatDateTime('d. mmmm yyyy', Today);
Run Code Online (Sandbox Code Playgroud)

MBo*_*MBo 6

GetDateFormat

var
  DateStr: array[byte] of Char;

begin
   GetDateFormat(LOCALE_USER_DEFAULT, DATE_LONGDATE, nil, nil, DateStr, 256);
   Writeln(DateStr);
Run Code Online (Sandbox Code Playgroud)

对于俄罗斯这个区域返回正确的短语:31январ я 2019г. (不是主格??????)

GetDateFormat($405, DATE_LONGDATE, nil, nil, DateStr, 256);
Run Code Online (Sandbox Code Playgroud)

对于捷克语语言环境,LCID=$405它返回31. ledna 2019