Функция 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
Категория
Поддержка национальных языков