Функция GetTimeFormat

Declare Function GetTimeFormat Lib "kernel32" Alias "GetTimeFormatA" (ByVal Locale As Long, _
    ByVal dwFlags As Long, lpTime As SYSTEMTIME, _
    ByVal lpFormat As Any, ByVal lpTimeStr As String, ByVal cchTime As Long) As Long

GetTimeFormat форматирует строку с временем в соответствии с принятым локальным представлением времени

Возвращаемое значение

В случае ошибки возвращается 0 (используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает число символов, записанных в буфер lpTimeStr

Параметры

Locale
Идентификатор локального контекста для определения формата. Если равен 0, то используется локальный контекст потока. Также может принимать одно из следующих значений:
LOCALE_SYSTEM_DEFAULT = &H400
Системный локальный контекст по умолчанию
LOCALE_USER_DEFAULT = &H800
Пользовательский локальный контекст по умолчанию
dwFlags
Комбинация флагов, определяющих формат времени. Если используется параметр lpFormat, то используется 0
LOCALE_NOUSEROVERRIDE = &H80000000
спользуется системный локальный контекст по умолчанию, игнорируя любые пользовательские настройки
LOCALE_USE_CP_ACP = &H40000000
Используется системная кодовая страница ANSI
TIME_NOMINUTESORSECONDS = &H1
Не выводить минуты или секунды
TIME_NOSECONDS = &H2
Не выводить секунды
TIME_NOTIMEMARKER = &H4
Не выводить AM/PM
TIME_FORCE24HOURFORMAT = &H8
Использовать 24-часовой формат
lpTime
Время для форматирования строки. Поля структуры, отвечающие за дату, игнорируются
lpFormat
Шаблон для форматирования строки со временем. При использовании предопределенных форматов установите этот параметр в 0. Возможные варианты шаблонов:
h
Часы без начального 0 для однозначных чисел часа (12-часовой формат)
hh
Выводится 0 для однозначных чисел часа (12-часовой формат)
H
Не выводится 0 для однозначных чисел часа (24-часовой формат)
HH
Выводится 0 для однозначных чисел часа (24-часовой формат)
m
Не выводится 0 для однозначных чисел минут
mm
Выводится 0 для однозначных чисел минут
s
Не выводится 0 для однозначных чисел секунд
ss
Выводится 0 для однозначных чисел секунд
t
Один символ индикатора AM/PM
tt
Два символа индикатора AM/PM indicator
lpTimeStr
Буфер, который принимает отформатированную строку
cchTime
Длина буфера lpTimeStr

Пример

' Выводим время двумя способами
Dim today As SYSTEMTIME  ' сегодняшнее число и время
Dim timestr As String  ' получаемая строка
Dim strlen As Long  ' длина буфера

' Получаем сегодняшнюю дату для данной временной зоны
GetLocalTime today

' Создаем место для буфера
timestr = Space(255)
' Форматируем время одним способом
strlen = GetTimeFormat(0, TIME_NOSECONDS, today, CLng(0), timestr, Len(timestr))
timestr = Left(timestr, strlen)
Debug.Print "Сейчас "; timestr

' Снова создаем место для буфера
timestr = Space(255)
' Форматируем время другим способом
strlen = GetTimeFormat(0, 0, today, "HHmm 'hours'", timestr, Len(timestr))
timestr = Left(timestr, strlen)
Debug.Print "Сейчас "; timestr

Смотри также

GetDateFormat

Категория

Поддержка национальных языков