GetTimeFormat winapi

WinApi функция GetTickCount

Описание:
function GetTimeFormat(Locale: LCID; dwFlags: DWORD; lpTime: PSystemTime;
lpFormat: PChar; lpTimeStr: PChar; cchTime: Integer): Integer;

Функция формирует строку времени для определенной временной локали(идентификатора локали\LocaleID) форматируя из системного времени. Функция форматирует определенное время или локальное системное время.

Параметры:
Locale: Определяет временную локаль в соответствии с которой должно быть отформатировано время. Если lpFormat nil, то функция форматирует время согласно текущей локали.

Этот параметр может быть локалью созданной с помощью макроса MAKELCID или быть одной из следующих величин:
LOCALE_SYSTEM_DEFAULT - Системная локаль по умолчинию.
LOCALE_USER_DEFAULT - Локаль пользователя по умолчанию.

dwFlags: Флаги опций:
LOCALE_NOUSEROVERRIDE - Если установлено, то функция форматирует время используя системный формат времени по умолчанию для определенной локали. Если не установлено, то функция форматирует строку для любого пользователя перекрывающего локаль времени по умолчанию. Этот флаг не может быть установлен если lpFormat не nil.

LOCALE_USE_CP_ACP - Использует кодовую страницу ANSI вместо кодовой страницы локали для трансляции строки.
TIME_NOMINUTESORSECONDS - Не использовать минуты и секунды.
TIME_NOSECONDS - Не использовать секунды.
TIME_NOTIMEMARKER - Не использовать маркер времени.
TIME_FORCE24HOURFORMAT - Всегда использовать 24х часовой формат времени.

lpTime: Указатель на структуру TSystemTime которая содержит информацию о дате и времени, которые необходимо форматировать. Если этот указатель nil, то функция использует текущее локальное системное время.

lpFormat: Строка со образом формата для формирования строки времени. Если этот параметр nil, то функция использует формат времени определенный локалью.
Используйте следующие элементы для конструирования образа строки форматирования. Если вы используете пробелы, чтобы разделить элементы с строке формата, то эти пробелы появятся с той же позиции в выходной строке. Символы должны быть в том же регистре как указано(например, "ss", а не "SS"). Символы с строке формата заключенные в одиночные ковычки, появяться в той же позиции и неизменными в выходной строке.

h - Часы указываются без ведущего нуля для одно-циферных часов. 12ти часовое время.
hh - Часы указываются с ведущем нулем для одно-циферных часов. 12ти часовое время.
H - Часы указываются без ведущего нуля для одно-циферных часов. 24х часовое время.
HH - Часы указываются с ведущем нулем для одно-циферных часов. 24х часовое время.
m - Минуты указываются без ведущего нуля для одно-циферных часов.
mm - Минуты указываются с ведущем нулем для одно-циферных часов.

s - Секунды указываются без ведущего нуля для одно-циферных часов.
ss - Секунды указываются с ведущем нулем для одно-циферных часов.
t - Односимвольным временной маркер строки, как например "A" или "P".
tt - Многосимвольным временной маркер строки, как например "AM" или "PM".
Например, чтобы получить строку времени:
"11:29:40 PM"
то используйте такую строку формата:
"hh':'mm':'ss tt"

lpTimeStr: Буфер который получает отформатированную строку времени.

cchTime: Указывает размер буфера lpTimeStr. Если cchTime - нуль, то функция возвращает количество байт или символов необходимых для приема форматированной строки времени.

Возвращаемые значения
Если функция добивается успеха, то возращаемое значение - число символов записанных в буфер. Если параметр cchTime является нулем, обратная величина - количество байт или символов необходимых для приема форматированной строки времени. Это количество включает и завершающий ноль.
Если функция терпит неудачу, то возвращаемое значение ноль. Чтобы получить расширенную информацию об ошибке, вызовите функцию GetLastError. GetLastError МОЖЕТ возвращать один из следующих кодов ошибки:

ERROR_INSUFFICIENT_BUFFER
ERROR_INVALID_FLAGS
ERROR_INVALID_PARAMETER

Замечания
Если маркер времени существует и флаг TIME_NOTIMEMARKER не установлен, функция локализует временный маркер основываясь на определенной временной локали. Примеры маркеров "AM" и "PM" для US English.
Время указанное с структуре TSystemTime должно быть верным. Функция каждый раз проверяет значения на вхождение в допустимый диапазон величин. Если величина вне диапазона, то функция терпит неудачу и устанавливает ошибку ERROR_INVALID_PARAMETER.

Функция игнорирует элементы wYear, wMonth, wDayOfWeek, и wDay структуры TSystemTime.
Если флаги TIME_NOMINUTESORSECONDS или TIME_NOSECONDS установлены, то функция удаляет разделитель(и) предшествующие минутам и\или секундам.
Если флаг TIME_NOTIMEMARKER установлен, то функция удаляет разделитель(и) предшествующие и следующие за маркером времени.
Если флаг TIME_FORCE24HOURFORMAT установлен, то функция отображает любые существующие маркеры времени. Флаг TIME_NOTIMEMARKER не может быть установлен.

Функция не включает миллисекунды как часть форматированной строки времени.
Для того, чтобы использовать LOCALE_NOUSEROVERRIDE, lpFormat должен быть nil.
Ошибки из-за плохой строки формате не возращаются. Фунция формируюет наилучшую выходную строку времени, которую сможет.
Для того, чтобы получать формат времени не выполняя любое фактическое форматирование, используйте функцию GetLocaleInfo с параметром LOCALE_STIMEFORMAT.

В преддверии летней жары рекомендую всем именно сейчас подумать об охлаждении своих квартир и офисов, пока цены на установку кондиционеров не такие уж большие по сравнению с теми, что бывают именно в сезон. Все дело в том что в прошлом году мы с толкнулись с такой проблемой когда, купить даже обычный вентилятор оказалось очень не просто, поэтому как говориться готовьте сани летом !

Материал взят из:
Русская спpавка по Windows API



Последние из рубрики

ОтменитьДобавить комментарий