Процедура DateTimeToString позволяет форматировать дату и время, и в нужном формате даты и времени DateTime ( тип TDateTime ) переводить в строку. Т.е Delphi процедура DateTimeToString позволяет форматировать и время и дату.
Форматирование строки может включать смешивание обычных символов ( дата будет переведена в строку именно так, как укажет пользователь). Пример форматирования хорошо представлен в примере кода.
Следующее (не-Азиатское) символы формата даты могут быть использованы:
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 = Час без 0 n = Минуты без 0 nn = Минуты как 2 цифры s = Секунды без 0 ss = Секунды как 2 цифры z = Миллисекунды без 0 zzz = Миллисекунды как 3 цифры 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 в строку
LongDateFormat Переводит длинную версию даты в строковый формат
LongDayNames Массив названий дней недели, начинается с 1 = Воскресенье
LongMonthNames Массив названий месяцев, начинается с 1 = Январь
LongTimeFormat Длинная версия времени в строковом формате
Пример кода : Показ всех типов форматирования данных полей даты
var
myDate : TDateTime;
formattedDateTime : string;
begin // Установка нашей TDateTime
переменной полной датой и временем : //
09/02/2007 в 01:02:03.004 (.004 миллисекунд)
myDate := EncodeDateTime(2007, 2, 9, 1, 2, 3, 4); // Только дата - числовые значения
без начальных нулей (кроме года) DateTimeToString(formattedDateTime, 'd/m/y', myDate);
ShowMessage(' d/m/y = '+formattedDateTime); // Только дата - числовые значения с
начальными нулями DateTimeToString(formattedDateTime, 'dd/mm/yy', myDate);
ShowMessage(' dd/mm/yy = '+formattedDateTime); // Использование короткого названия
дня, месяца, и добавление текста свободного формата ('of') DateTimeToString(formattedDateTime, 'ddd d of mmm yyyy', myDate);
ShowMessage(' ddd d of mmm yyyy = '+formattedDateTime); // Использование длинных имён дня и
месяца DateTimeToString(formattedDateTime, 'dddd d of mmmm yyyy', myDate);
ShowMessage('dddd d of mmmm yyyy = '+formattedDateTime); // Использование параметров настройки
только ShortDateFormat DateTimeToString(formattedDateTime, 'ddddd', myDate);
ShowMessage(' ddddd = '+formattedDateTime); // Использование параметров настройки
только LongDateFormat DateTimeToString(formattedDateTime, 'dddddd', myDate);
ShowMessage(' dddddd = '+formattedDateTime); // Использование параметров настройки
ShortDateFormat + LongTimeFormat DateTimeToString(formattedDateTime, 'c', myDate);
ShowMessage(' c = '+formattedDateTime);
end;
d/m/y = 9/2/07
dd/mm/yy = 09/02/07
ddd d of mmm yyyy = Пятн 9 Фев 2007
dddd d of mmmm yyyy = Пятница 9 Февраля 2007
ddddd = 09/02/2007
dddddd = 09 Февраля 2007
c = 09/02/2007 01:02:03
Пример кода : Показ всех типов форматирования данных полей времени
var
myDate : TDateTime;
formattedDateTime : string;
begin // Установка нашей TDateTime
переменной полной датой и временем : //
09/02/2007 в 01:02:03.004 (.004 миллисекунд)
myDate := EncodeDateTime(2000, 2, 9, 1, 2, 3, 4); // Только время - числовые значения
без использования нулей DateTimeToString(formattedDateTime, 'h:m:s.z', myDate);
ShowMessage(' h:m:s.z = '+formattedDateTime); // Только время - числовые значения
с использованием нулей DateTimeToString(formattedDateTime, 'hh:mm:ss.zzz', myDate);
ShowMessage('hh:mm:ss.zzz = '+formattedDateTime); // Использование параметров настройки
только ShortTimeFormat DateTimeToString(formattedDateTime, 't', myDate);
ShowMessage(' t = '+formattedDateTime); // Использование параметров настройки
только LongTimeFormat DateTimeToString(formattedDateTime, 'tt', myDate);
ShowMessage(' tt = '+formattedDateTime); // Использование параметров настройки
ShortDateFormat + LongTimeFormat DateTimeToString(formattedDateTime, 'c', myDate);
ShowMessage(' c = '+formattedDateTime);
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;
formattedDateTime : string;
begin // Установка нашей переменной
TDateTime полной датой и временем
myDate := StrToDateTime('09/02/49 01:02:03.004'); // Демонстрация параметров настроек
региона заданных по умолчанию // Использование значений DateSeparator
и TimeSeparator DateTimeToString(formattedDateTime, 'dd/mm/yy hh:mm:ss', myDate);
ShowMessage('dd/mm/yy hh:mm:ss = '+formattedDateTime); // Использование ShortMonthNames DateTimeToString(formattedDateTime, 'mmm', myDate);
ShowMessage(' mmm = '+formattedDateTime); // Использование LongMonthNames DateTimeToString(formattedDateTime, 'mmmm', myDate);
ShowMessage(' mmmm = '+formattedDateTime); // Использование ShortDayNames DateTimeToString(formattedDateTime, 'ddd', myDate);
ShowMessage(' ddd = '+formattedDateTime); // Использование LongDayNames DateTimeToString(formattedDateTime, 'dddd', myDate);
ShowMessage(' dddd = '+formattedDateTime); // Использование строки ShortDateFormat DateTimeToString(formattedDateTime, 'ddddd', myDate);
ShowMessage(' ddddd = '+formattedDateTime); // Использование строки LongDateFormat DateTimeToString(formattedDateTime, 'dddddd', myDate);
ShowMessage(' dddddd = '+formattedDateTime); // Использование TimeAmString DateTimeToString(formattedDateTime, 'hhampm', myDate);
ShowMessage(' hhampm = '+formattedDateTime); // Использование строки ShortTimeFormat DateTimeToString(formattedDateTime, 't', myDate);
ShowMessage(' t = '+formattedDateTime); // Использование строки LongTimeFormat DateTimeToString(formattedDateTime, 'tt', myDate);
ShowMessage(' tt = '+formattedDateTime); // Использование TwoDigitCenturyWindow DateTimeToString(formattedDateTime, 'dd/mm/yyyy', myDate);
ShowMessage(' dd/mm/yyyy = '+formattedDateTime);
ShowMessage(''); // Теперь изменяем умолчания
DateSeparator := '-';
TimeSeparator := '_';
ShortDateFormat := 'dd/mmm/yy';
LongDateFormat := 'dddd dd of mmmm of yyyy';
TimeAMString := 'morning';
TimePMString := 'afternoon';
ShortTimeFormat := 'hh:mm:ss';
LongTimeFormat := 'hh : mm : ss . zzz';
ShortMonthNames[2] := 'FEB';
LongMonthNames[2] := 'FEBRUARY';
ShortDayNames[4] := 'WED';
LongDayNames[4] := 'WEDNESDAY';
TwoDigitYearCenturyWindow := 75; // Установка нашей переменной
TDateTime в тоже самое значение, что и прежде //
за исключением того, что мы должны использовать новые разделители даты и времени //
Только переменная TwoDigitYearCenturyWindow здесь вступает в силу
myDate := StrToDateTime('09-02-49 01_02_03.004'); // Использование значений DateSeparator
и TimeSeparator DateTimeToString(formattedDateTime, 'dd/mm/yy hh:mm:ss', myDate);
ShowMessage('dd/mm/yy hh:mm:ss = '+formattedDateTime); // Использование ShortMonthNames DateTimeToString(formattedDateTime, 'mmm', myDate);
ShowMessage(' mmm = '+formattedDateTime); // Использование LongMonthNames DateTimeToString(formattedDateTime, 'mmmm', myDate);
ShowMessage(' mmmm = '+formattedDateTime); // Использование ShortDayNames DateTimeToString(formattedDateTime, 'ddd', myDate);
ShowMessage(' ddd = '+formattedDateTime); // Использование LongDayNames DateTimeToString(formattedDateTime, 'dddd', myDate);
ShowMessage(' dddd = '+formattedDateTime); // Использование строки ShortDateFormat DateTimeToString(formattedDateTime, 'ddddd', myDate);
ShowMessage(' ddddd = '+formattedDateTime); // Использование строки LongDateFormat DateTimeToString(formattedDateTime, 'dddddd', myDate);
ShowMessage(' dddddd = '+formattedDateTime); // Использование TimeAmString DateTimeToString(formattedDateTime, 'hhampm', myDate);
ShowMessage(' hhampm = '+formattedDateTime); // Использование строки ShortTimeFormat DateTimeToString(formattedDateTime, 't', myDate);
ShowMessage(' t = '+formattedDateTime); // Использование строки LongTimeFormat DateTimeToString(formattedDateTime, 'tt', myDate);
ShowMessage(' tt = '+formattedDateTime); // Использование TwoDigitCenturyWindow DateTimeToString(formattedDateTime, 'dd/mm/yyyy', myDate);
ShowMessage(' dd/mm/yyyy = '+formattedDateTime);
end;
dd/mm/yy hh:mm:ss = 09/02/49 01:02:03
mmm = Feb
mmmm = February
ddd = Tue
dddd = Tuesday
ddddd = 09/02/2049
dddddd = 09 February 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 = FEB
mmmm = FEBRUARY
ddd = WED
dddd = WEDNESDAY
ddddd = 09-FEB-49
dddddd = WEDNESDAY 09 of FEBRUARY of 1949
hhampm = 01morning
t = 01_02_03
tt = 01 _ 02 _ 03 . 004
dd/mm/yyyy = 09-02-1949