当默认语言是非英语时,如何使用TDateCalendar作为英语(天数字幕)?

时间:2011-01-07 06:25:09

标签: delphi datetime regional-settings

我们的计算机设置是区域语言是韩语,我的问题是当我使用FormatDateTime(' MMM DD YYYY')时,它返回韩语(月)的日期。甚至datecalendar都是非英语的。有什么建议吗?

1 个答案:

答案 0 :(得分:2)

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中。

你可以在this site上找到LCID。