Функция FormatDateTime обеспечивает богатое форматирование TDateTime DateTime значения в строку. Форматирование определяется строкой Форматирования.
Форматируемая строка (Formatting) может включать смесь обычных символов (которые передаются неизменными в строку результата), и символы форматирования данных. Форматирование лучше всего объясняется кодом примера.
Следующие (неазиатские) строки символа форматирования могут использоваться в форматируемой строке:
y = Год из 2-х последних цифр yy = Год из 2-х последних цифр yyyy = Год из 4-х цифр m = Номер месяца без 0 mm = Номер месяца как 2 цифры mmm = Месяц используя ShortDayNames (Янв) mmmm = Месяц используя LongDayNames (Январь) d = Число без 0 dd = Число как 2 цифры ddd = Число используя ShortDayNames (Воск) dddd = Число используя LongDayNames (Воскресенье) ddddd = Число в ShortDateFormat dddddd = Число в LongDateFormat
c = Используя ShortDateFormat + LongTimeFormat h = Час без 0 hh = Час как 2 цифры n = Минуты без 0 nn = Минуты как 2 цифры s = Секунды без 0 ss = Секунды как 2 цифры z = Миллисекунды без 0 zzz = Миллисекунды как 2 цифры t = Используя ShortTimeFormat tt = Используя LongTimeFormat
am/pm = Используется после h : выдаёт 12 часов + am/pm a/p = Используется после h : выдаёт 12 часов + a/p ampm = Как a/p но TimeAMString,TimePMString / = Заменяется значением DateSeparator : = Заменяется значением TimeSeparator
В дополнение к этому форматированию, различные из вышеупомянутых вариантов затрагиваются следующими переменными, с их значением по значением по умолчанию:
Версия 2 этой функции - для использования в пределах потоков. Вы должны заполнить запись FormatSettings перед вызовом запроса. Она берёт местную копию глобальной переменной, форматирующей переменные, которые делают подпрограмму потоко-безопасной.
Похожие команды
DateSeparator Символ используемый для разделения полей отображаемой даты
DateTimeToStr Конвертирует значение даты и времени TDateTime в строку
DateTimeToString Огромные возможности форматирования даты в строку
LongDateFormat Переводит длинную версию даты в строковый формат
LongDayNames Массив названий дней недели, начинается с 1 = Воскресенье
LongMonthNames Массив названий месяцев, начинается с 1 = Январь
LongTimeFormat Длинная версия времени в строковом формате
Пример кода : Показ всех типов данных форматирования полей даты
var
myDate : TDateTime;
begin // Установка нашей переменной
TDateTime в полное значение даты и времени: // 09/02/2000 в 01:02:03.004 (.004
миллисекунд)
myDate := EncodeDateTime(2000, 2, 9, 1, 2, 3, 4); // Только дата - числовые значения
без начальных нулей (кроме года)
ShowMessage(' d/m/y = '+ FormatDateTime('d/m/y', myDate)); // Только дата - числовые значения с
начальными нулями
ShowMessage(' dd/mm/yy = '+ FormatDateTime('dd/mm/yy', myDate)); // Использование коротких названий
для дня, месяца, и добавление текста свободного формата ('of')
ShowMessage(' ddd d of mmm yyyy = '+ FormatDateTime('ddd d of mmm yyyy', myDate)); // Использование длинных названий для
дня и месяца
ShowMessage('dddd d of mmmm yyyy = '+ FormatDateTime('dddd d of mmmm yyyy', myDate)); // Использование настроек только
ShortDateFormat
ShowMessage(' ddddd = '+ FormatDateTime('ddddd', myDate)); // Использование настроек только LongDateFormat
ShowMessage(' dddddd = '+ FormatDateTime('dddddd', myDate)); // Использование настроек ShortDateFormat + LongTimeFormat
ShowMessage(' c = '+ FormatDateTime('c', myDate));
end;
d/m/y = 9/2/00
dd/mm/yy = 09/02/00
ddd d of mmm yyyy = Ср 9 Фев 2000
dddd d of mmmm yyyy = Среда 9 Февраля 2000
ddddd = 09/02/2000
dddddd = 09 Февраля 2000
c = 09/02/2000 01:02:03
Пример кода : Показ всех типов форматирования данных полей времени
var
myDate : TDateTime;
begin // Установка нашей переменной TDateTime в полное значение даты и времени: //
09/02/2000 в 01:02:03.004 (.004 миллисекунд)
myDate := EncodeDateTime(2000, 2, 9, 1, 2, 3, 4); // Только время - числовые значения
без начальных нулей (кроме года)
ShowMessage(' h:m:s.z = '+FormatDateTime('h:m:s.z', myDate)); // Только время - числовые значения с
начальными нулями
ShowMessage('hh:mm:ss.zzz = '+FormatDateTime('hh:mm:ss.zzz', myDate)); // Использование настроек только ShortTimeFormat
ShowMessage(' t = '+FormatDateTime('t', myDate)); // Использование настроек только LongTimeFormat
ShowMessage(' tt = '+FormatDateTime('tt', myDate)); // Использование настроек ShortDateFormat + LongTimeFormat
ShowMessage(' c = '+FormatDateTime('c', myDate));
end;
h:m:s.z = 1:2:3.4
hh:mm:ss.zzz = 01:02:03.004
t = 01:02
tt = 01:02:03
c = 09/02/2000 01:02:03
Пример кода : Показ эффекта местных параметров настроек формата даты
var
myDate : TDateTime;
begin // Установка нашей переменной TDateTime
в полное значение даты и времени
myDate := StrToDateTime('09/02/49 01:02:03.004'); // Демонстрация локальных настроек
заданных по умолчанию // Использование значений DateSeparator
и TimeSeparator
ShowMessage('dd/mm/yy hh:mm:ss = '+ FormatDateTime('dd/mm/yy hh:mm:ss', myDate)); // Использование ShortMonthNames
ShowMessage(' mmm = '+FormatDateTime('mmm', myDate)); // Использование LongMonthNames
ShowMessage(' mmmm = '+FormatDateTime('mmmm', myDate)); // Использование ShortDayNames
ShowMessage(' ddd = '+FormatDateTime('ddd', myDate)); // Использование LongDayNames
ShowMessage(' dddd = '+FormatDateTime('dddd', myDate)); // Использование строки ShortDateFormat
ShowMessage(' ddddd = '+FormatDateTime('ddddd', myDate)); // Использование строки LongDateFormat
ShowMessage(' dddddd = '+FormatDateTime('dddddd', myDate)); // Использование TimeAmString
ShowMessage(' hhampm = '+FormatDateTime('hhampm', myDate)); // Использование строки ShortTimeFormat
ShowMessage(' t = '+FormatDateTime('t', myDate)); // Использование строки LongTimeFormat
ShowMessage(' tt = '+FormatDateTime('tt', myDate)); // Использование TwoDigitCenturyWindow
ShowMessage(' dd/mm/yyyy = '+ FormatDateTime('dd/mm/yyyy', myDate));
ShowMessage(''); // Теперь показываем умолчания
DateSeparator := '-';
TimeSeparator := '_';
ShortDateFormat := 'dd/mmm/yy';
LongDateFormat := 'dddd dd of mmmm of yyyy';
TimeAMString := 'утро';
TimePMString := 'день';
ShortTimeFormat := 'hh:mm:ss';
LongTimeFormat := 'hh : mm : ss . zzz';
ShortMonthNames[2] := 'ФЕВ';
LongMonthNames[2] := 'ФЕВРАЛЬ';
ShortDayNames[4] := 'ВТ';
LongDayNames[4] := 'ВТОРНИК';
TwoDigitYearCenturyWindow := 75; // Установка нашей переменной
TDateTime в то же самое значение, что и прежде //
за исключением того, что мы должны использовать новые разделители даты и времени //
Здесь имеет действие только переменная TwoDigitYearCenturyWindow
myDate := StrToDateTime('09-02-49 01_02_03.004'); // Использование значений DateSeparator
и TimeSeparator
ShowMessage('dd/mm/yy hh:mm:ss = '+ FormatDateTime('dd/mm/yy hh:mm:ss', myDate)); // Использование ShortMonthNames
ShowMessage(' mmm = '+FormatDateTime('mmm', myDate)); // Использование LongMonthNames
ShowMessage(' mmmm = '+FormatDateTime('mmmm', myDate)); // Использование ShortDayNames
ShowMessage(' ddd = '+FormatDateTime('ddd', myDate)); // Использование LongDayNames
ShowMessage(' dddd = '+FormatDateTime('dddd', myDate)); // Использование строки ShortDateFormat
ShowMessage(' ddddd = '+FormatDateTime('ddddd', myDate)); // Использование строки LongDateFormat
ShowMessage(' dddddd = '+FormatDateTime('dddddd', myDate)); // Использование TimeAmString
ShowMessage(' hhampm = '+FormatDateTime('hhampm', myDate)); // Использование строки ShortTimeFormat
ShowMessage(' t = '+FormatDateTime('t', myDate)); // Использование строки LongTimeFormat
ShowMessage(' tt = '+FormatDateTime('tt', myDate)); //Использование TwoDigitCenturyWindow
ShowMessage(' dd/mm/yyyy = '+ FormatDateTime('dd/mm/yyyy', myDate));
end;