Как использовать TDateCalendar как английский (подписи дня), когда язык по умолчанию не является английским?

StackOverflow https://stackoverflow.com/questions/4623035

Вопрос

Наши настройки компьютеров имеют региональный язык - корейский, моя проблема заключается в том, когда я использую FormatDateTime («Ммм ДД ГГГГ»), он возвращает дату на корейский язык (месяц). И даже DateCalendar не английский. любое предложение?

Это было полезно?

Решение

FormatDateTime имеет перегруженный вариант, который вы можете использовать для переопределения параметров формата:

function FormatDateTime(const Format: string; DateTime: TDateTime;
  const FormatSettings: TFormatSettings): string; overload;

Где TFormatsettings определяется как:

type
  TFormatSettings = record
    CurrencyFormat: Byte;
    NegCurrFormat: Byte;
    ThousandSeparator: Char;
    DecimalSeparator: Char;
    CurrencyDecimals: Byte;
    DateSeparator: Char;
    TimeSeparator: Char;
    ListSeparator: Char;
    CurrencyString: string;
    ShortDateFormat: string;
    LongDateFormat: string;
    TimeAMString: string;
    TimePMString: string;
    ShortTimeFormat: string;
    LongTimeFormat: string;
    ShortMonthNames: array[1..12] of string;
    LongMonthNames: array[1..12] of string;
    ShortDayNames: array[1..7] of string;
    LongDayNames: array[1..7] of string;
    TwoDigitYearCenturyWindow: Word;
  end;

TFormatsettings можно использовать практически все функции формата.

Вы можете получить настройки формата данного локали (в Windows). Или вы можете создать это самостоятельно.

procedure GetLocaleFormatSettings(LCID: Integer;
  var FormatSettings: TFormatSettings);

Все в Sysutils.

И вы можете найти LCID на этот сайт.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top