Функция GetDateFormat
Declare Function GetDateFormat Lib "kernel32" Alias
"GetDateFormatA" ( _
ByVal Locale As Long, ByVal dwFlags As Long, _
lpDate As SYSTEMTIME, _
ByVal lpFormat As Any, _
ByVal lpDateStr As String, ByVal cchDate As Long) As Long
GetDateFormat форматирует дату в соответствии с форматом даты для заданного локального контекста
Возвращаемое значение
В случае ошибки функция возвращает 0 (используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает число символов, записанных в буфер lpDateStr
Параметры
- Locale
- Идентификатор локального контекста для определения формата. Если равен 0, то используется локальный контекст потока. Также может принимать одно из следующих значений:
- LOCALE_SYSTEM_DEFAULT = &H400
- Системный локальный контекст по умолчанию
- LOCALE_USER_DEFAULT = &H800
-
- dwFlags
- Комбинация флагов, определяющих формат даты. Если используется параметр lpFormat, то используется 0
- LOCALE_NOUSEROVERRIDE = &H80000000
- Используется системный локальный контекст по умолчанию, игнорируя любые пользовательские настройки
- LOCALE_USE_CP_ACP = &H40000000
- Используется системная кодовая страница ANSI
- DATE_SHORTDATE = &H1
- Форматирует строку, используя короткий формат даты
- DATE_LONGDATE = &H2
- Форматирует строку, используя длинный формат даты
- DATE_YEARMONTH = &H8
- Форматирует строку, используя формат год/месяц
- DATE_USE_ALT_CALENDAR = &H4
- При существовании альтернативного календаря используется формат данного календаря
- DATE_LTRREADING = &H10
- Добавляет метку чтения слева-направо
- DATE_RTLREADING = &H20
- Добавляет метку чтения справа-налево
- lpDate
- Дата для форматирования строки. Поля структуры, задающее время, игнорируются
- lpFormat
- Шаблон для форматирования строки с датой. При использовании предопределенных форматов установите этот параметр в 0. Возможные варианты шаблонов:
- d
- День месяца как цифра без начальный нулей для однозначных чисел
- dd
- День месяца с использованием 0 для однозначных чисел
- ddd
- Трехбуквенное сокращение названия дня недели
- dddd
- Полное имя недели
- Месяц как цифра без 0 для однозначных чисел
- MM
- Месяц как цифра с 0 для однозначных чисел
- MMM
- Трехбуквенное сокращение имени месяца
- MMMM
- Полное имя месяца
- y
- Последние две цифры года без 0 для годов меньше 10
- yy
- Последние две цифры года с 0 для годов меньше 10
- yyyy
- Все четыре цифры года
- gg
- Период/эра, если задано локальным контекстом
- lpDateStr
- Буфер, который принимает отформатированную строку
- cchDate
- Длина буфера lpDateStr. Если параметр равен 0, необходимая длина буфера возвращается функцией
Пример
' Выводим сегодняшнюю дату
' в длинном форматре и в формате HTTP
Dim today As SYSTEMTIME ' сегодняшнее число и время
Dim datestr As String ' получаемая строка
Dim strlen As Long ' длина буфера
' Получаем сегодняшнюю дату для данной временной зоны
GetLocalTime today
' Создаем место для буфера
datestr = Space(255)
' Форматируем дату в длинном формате
strlen = GetDateFormat(0, DATE_LONGDATE, today, CLng(0), datestr, Len(datestr))
datestr = Left(datestr, strlen)
Debug.Print "Сегодня "; datestr
' Снова создаем место для буфера
datestr = Space(255)
' Форматируем дату по другому
strlen = GetDateFormat(0, 0, today, "ddd',' dd MMM yyyy", datestr, Len(datestr))
datestr = Left(datestr, strlen)
Debug.Print "Сегодня "; datestr
Смотри также
GetTimeFormat
Категория
Поддержка национальных языков