Функция FormatDateTime в Delphi – расширенное форматирование переменной TDateTime в строку.
SysUtils unit
- function FormatDateTime (const Formatting : string; DateTime : TDateTime) : string;
- function FormatDateTime (const Formatting : string; DateTime : TDateTime; const FormatSettings : TFormatSettings) : string;
Функция 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.
В дополнение к этому форматированию, различные из вышеупомянутых вариантов затрагиваются следующими переменными, с их значением по значением по умолчанию:
- DateSeparator = /
- TimeSeparator = :
- ShortDateFormat = dd/mm/yyyy
- LongDateFormat = dd mmm yyyy
- TimeAMString = AM
- TimePMString = PM
- LongTimeFormat = hh:mm:ss
- ShortMonthNames = Янв Фев ...
- LongMonthNames = Январь, Февраль ...
- ShortDayNames = Воск, Пон ...
- LongDayNames = Воскресенье, Понедельник ...
- TwoDigitYearCenturyWindow = 50
Версия 2 этой функции – для использования в пределах потоков. Вы должны заполнить запись FormatSettings перед вызовом запроса. Она берёт местную копию глобальной переменной, форматирующей переменные, которые делают подпрограмму потокобезопасной.
Функция FormatDateTime: Показ всех типов данных форматирования полей даты
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
Функция FormatDateTime: Показ эффекта местных параметров настроек формата даты
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;
Результат
dd/mm/yy hh:mm:ss = 09/02/49 01:02:03
mmm = Фев
mmmm = Февраль
ddd = Вт
dddd = Вторник
ddddd = 09/02/2049
dddddd = 09 Февраль 2049
hhampm = 01AM
t = 01:02
tt = 01:02:03
dd/mm/yyyy = 09/02/2049
dd/mm/yy hh:mm:ss = 09-02-49 01_02_03
mmm = ФЕВ
mmmm = ФЕВРАЛЬ
ddd = ВТ
dddd = ВТОРНИК
ddddd = 09-ФЕВ-49
dddddd = ВТОРНИК 09 ФЕВРАЛЬ 1949
hhampm = 01утро
t = 01_02_03
tt = 01 _ 02 _ 03 . 004
dd/mm/yyyy = 09-02-1949
Похожие функции, процедуры и команды
DateSeparator — символ используемый для разделения полей отображаемой даты.
DateTimeToStr — конвертирует значение даты и времени TDateTime в строку.
DateTimeToString — огромные возможности форматирования даты в строку.
LongDateFormat — переводит длинную версию даты в строковый формат.
LongDayNames — массив названий дней недели, начинается с 1 = Воскресенье.
LongMonthNames — массив названий месяцев, начинается с 1 = Январь.
LongTimeFormat — длинная версия времени в строковом формате.
ShortDateFormat — компактная версия даты в строковом формате.
ShortDayNames — массив названий дней недели, начиная с 1 = Воскресенье.
ShortMonthNames — массив названий дней месяца, начиная с 1 = Январь.
ShortTimeFormat — короткая версия времени в строковый формат.
StrToDateTime — конвертирует строку с датой и временем в значение типа TDateTime.
TimeAMString — определяет значение AM в процедуре DateTimeToString.
TimePMString — определяет значение PM в процедуре DateTimeToString.
TimeSeparator — символ, используемый для разделения полей времени.
TwoDigitYearCenturyWindow — устанавливает порог столетия для преобразований строки года из 2 цифр.
