Delphi: Конвертация даты

время

Наверное, я только что изобрел страшный костыль, однако решение имеет право на жизнь и используется в одном из моих проектов.
Основная идея переконвертировать дату из одного вида в другой, и сделать это надо на Delphi.

Добавляем в uses модуль DateUtils.

Делать будем через FormatSettings:TFormatSettings; и StrToDateTime.

var
FormatSettings,FormatSettings1: TFormatSettings;
inputstr,outputstr:string;
 
begin
FormatSettings.ShortDateFormat := 'yyyy-mm-dd';
FormatSettings.DateSeparator := '-';
FormatSettings.LongTimeFormat := 'hh:nn:ss';
FormatSettings.TimeSeparator := ':';
 
FormatSettings1.ShortDateFormat := 'dd.MM.yyyy';
FormatSettings1.LongTimeFormat := 'hh:nn:ss';
FormatSettings1.TimeSeparator := ':';
FormatSettings1.DateSeparator := '.';
 
InputStr:='2013-03-13 21:10:00';
outputstr:=datetimetostr(StrToDateTime(inputstr, FormatSettings), FormatSettings1);
end;

В итоге получаем из «2013-03-13 21:10:00 -> 13.03.2013 21:10:00».


Параметры «FormatSettings»:
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

Более подробно об операторе можно почитать по ссылке FormatSettings.

Вы можете оставить комментарий ниже.