13,825
社区成员
发帖
与我相关
我的任务
分享
Date().FormatString(L"dd-mmm-yyyy")
中间的mmm,需要显示文字缩写而不是数字,现在知道这个东西是从LOCALE_SABBREVMONTHNAME获取的,但是这个条目好像是由系统语言决定的,我希望无论在任何语言的系统上都能显示同一种,比如全是英文的,怎么办?TFormatSettings EngFS;
GetLocaleFormatSettings(1033,EngFS); //LCID设成美语
UnicodeString xxx = FormatDateTime(L"dd-mmm-yyyy",Date(),EngFS);
AnsiString __fastcall MyFormatDate(TDateTime Date)
{
char MonthNames[12][4] = {
"JAN", "FEB", "MAR", "APR", "MAY", "JUN",
"JUL", "AUG", "SEP", "OCT", "NOV", "DEC"
};
WORD y, m, d;
DecodeDate(Date, y, m, d);
AnsiString s;
s.sprintf("%02d %s, %04d", d, MonthNames[m-1], y);
return s;
}