كيفية استخدام tdatecalendar كإنجليزية (تعليقات أيام) عندما تكون اللغة الافتراضية غير الإنجليزية؟

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

سؤال

إن إعدادات الكمبيوتر لدينا لها لغة إقليمية هي كورية ، مشكلتي هي عندما أستخدم FormatDateTime ('mmm dd yyyy') ، فإنه يعيد التاريخ على اللغة الكورية (الشهر). وحتى 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