Программирование для Windows NT (том 2)



         

Преобразование даты


Отформатированную в соответствии с указанным набором национальных параметров текстовую строку даты вы можете получить от функции 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);




Содержание  Назад  Вперед