Отформатированную в соответствии с указанным набором национальных параметров текстовую строку даты вы можете получить от функции GetDateFormat, во многом аналогичной только что рассмотренной функции GetTimeFormat.
Приведем прототип функции GetDateFormat:
int GetDateFormat(
LCID Locale, // идентификатор набора параметров
DWORD dwFlags, // флаги режима работы функции
CONST SYSTEMTIME *lpDate, // дата
LPCTSTR lpFormat, // строка формата даты
LPTSTR lpDateStr, // буфер для записи выходной строки
int cchDate); // размер выходного буфера в байтах
Рассмотрим отличия этой функции от функции GetTimeFormat.
Ниже мы привели набор констант, которые можно использовать для параметра dwFlags. Эти константы отличаются о тех, что можно использовать с функцией GetTimeFormat:
Константа |
Описание |
LOCALE_NOUSEROVERRIDE |
Строка даты будет получена в формате, который используется операционной системой по умолчанию для данного идентификатора набора национальных параметров |
DATE_SHORTDATE |
Сокращенный формат даты |
DATE_LONGDATE |
Полный формат даты |
DATE_USE_ALT_CALENDAR |
Использование альтернативного календаря, если таковой определен для данного идентификатора набора национальных параметров |
Отличаются также специальные символы, которые можно использовать в строке формата даты:
Символ |
Компонента даты |
d |
День месяца без ведущего нуля |
dd |
День месяца с ведущим нулем |
ddd |
Трехбуквенное сокращение дня недели |
dddd |
Полное название дня недели |
M |
Номер месяца без ведущего нуля |
MM |
Номер месяца с ведущим нулем |
MMM |
Трехбуквенное сокращение названия месяца |
MMMM |
Полное название месяца |
y |
Двухзначное обозначение года без ведущего нуля (последние две цифры года) |
yy |
Двухзначное обозначение года с ведущим нулем |
yyyy |
Полный номер года |
gg |
Название периода или эры |
Пример использования функции GetDateFormat для получения строки текущей даты приведен ниже:
GetDateFormat(GetThreadLocale(),
LOCALE_NOUSEROVERRIDE | DATE_LONGDATE,
NULL, NULL, szBuf1, 512);