Использую FormatDateTime('dddddd',StartDateTime), получаю "10 Май 2018 г", тогда как Windows 10 отображает "10 мая 2018 г".
Эту проблему можно решить стандартными средствами FPC 3.0.4 / Lazarus 1.8.0?
			
		Модератор: Модераторы
StringReplace(StringReplace(StringReplace('11 Май 2018',
      'ь ', 'я ', [rfReplaceAll]), // январь, февраль, апрель, июнь, июль, сентябрь, октябрь, ноябрь, декабрь
      'т ', 'та ', [rfReplaceAll]), // март, август
      'й ', 'я ', [rfReplaceAll]) // май

  with DefaultFormatSettings do  if LongMonthNames[1]='Январь' then
  begin
    LongMonthNames[1]:='января';
    LongMonthNames[2]:='февраля';
    LongMonthNames[3]:='марта';
    LongMonthNames[4]:='апреля';
    LongMonthNames[5]:='мая';
    LongMonthNames[6]:='июня';
    LongMonthNames[7]:='июля';
    LongMonthNames[8]:='августа';
    LongMonthNames[9]:='сентября';
    LongMonthNames[10]:='октября';
    LongMonthNames[11]:='ноября';
    LongMonthNames[12]:='декабря';
  end;
function GetGenStrDate(aDate: TDate): string;
var i: integer;
    s: TSystemTime;
    a: PWideChar;
begin
    DateTimeToSystemTime(aDate, s);
    a := GetMem(42);
    i := GetDateFormatW(LOCALE_USER_DEFAULT, 0, @s, 'd MMMM yyyy', a, 42);
    Result := StrPas(a);
    FreeMem(a, 42);
end;function GetGenStrDate(aDate: TDate): widestring;
var
   pass: integer;
   s: TSystemTime;
begin
   DateTimeToSystemTime(aDate, s);
   for pass := 0 to 1 do
      SetLength(result, GetDateFormatW(LOCALE_USER_DEFAULT, 0, @s, 'd MMMM yyyy', PWideChar(result), length(result)));
end;
Вернуться в Free Pascal Compiler
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1