Delphi-Help

DateTimeToString

Печать
Рейтинг пользователей: / 0
ХудшийЛучший 

DateTimeToString

Описание

1 procedure DateTimeToString ( var Result : string; const Formatting : string; DateTime : TDateTime );
2 procedure DateTimeToString ( var Result : string; const Formatting : string; DateTime : TDateTime; const FormatSettings : TFormatSettings );

Процедура 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

В дополнение к этому форматированию, различные из вышеупомянутых вариантов затрагиваются следующими переменными, использующими их как значения по умолчанию:
DateSeparator = /
TimeSeparator = :
ShortDateFormat = dd/mm/yyyy
LongDateFormat = dd mmm yyyy
TimeAMString = AM
TimePMString = PM
ShortTimeFormat = hh:mm
LongTimeFormat = hh:mm:ss
ShortMonthNames = Jan Feb ...
LongMonthNames = January, February ...
ShortDayNames = Sun, Mon ...
LongDayNames = Sunday, Monday ...
TwoDigitCenturyWindow = 50
Версия 2 этой функции - для использования в пределах потоков. Вы заполняете запись FormatSettings перед вызовом запроса. Она получает локальную копию глобальной форматирующей переменной, которая делает вашу подпрограмму потоко безопасной.

Пример кода

Пример кода : Показ всех типов форматирования данных полей даты

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

Примечание

Авторизация



Счетчики