
Преобразование даты в строку и обратно в языке Delphi
Самое интересное здесь — это формат строки. Он может содержать следующие символы:
- d — показать дату, не подставляя нули в начале (1, 2, 3. 30, 31);
- dd— показать дату, подставляя, если нужно, в начале ноль. В этом случае, если дата меньше 10, то она будет отражаться как 01, 02. 09;
- ddd — показать день недели, используя короткий формат (Пн, Вт, Ср. );
- dddd — показать день недели с полным названием (Понедельник, Вторник . );
- ddddd — показать дату, используя короткий формат;
- dddddd— показать дату, используя полный формат (Например, дата 10/02/2002 будет переведена в «10 февраля 2002»);
- m — показать месяц без добавления нулей (1, 2,11, 12);
- mm— показать месяц с добавлением нулей (01, 02, . 11, 12);
- mmm— показать короткое название месяца;
- Mmmm — показать полное название месяца (Январь, Февраль. );
- уу — показать год двумя цифрами (98, 99, 00, 01);
- уууу — показать год полностью;
- h — показать часы, не добавляя в начале нулей;
- hh — Показать часы с добавлением в начале нулей;
- п — показать минуты, не добавляя в начале нулей;
- пп — показать минуты с добавлением в начале нулей;
- s — показать секунды, не добавляя в начале нулей;
- ss — показать секунды с добавлением в начале нулей;
- z — показать миллисекунды, не добавляя в начале нулей;
- zz — показать миллисекунды с добавлением в начале нулей;
- am/pm — использовать 12-часовое представление (до полудня/после полудня).
Это практически полный обзор возможностей, а теперь посмотрим пару примеров:
FormatDateTime(‘dd/mm/yyy’, DateO); // Дата будет в виде «24/02/2002»
FormatDateTime(‘dddddd’, DateO); // Дата будет в виде «24 февраля 2002»
FormatDateTime(‘hh:nn’, TimeO); // Время будет в виде «10:48»
FormatDateTime (‘hh:nn — ss ‘ , TimeO); // Время будет в виде «10:48 — 24»
Форматирование строки может включать смешивание обычных символов ( дата будет переведена в строку именно так, как укажет пользователь). Пример форматирования хорошо представлен в примере кода.
Следующее (не-Азиатское) символы формата даты могут быть использованы:
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 перед вызовом запроса. Она получает локальную копию глобальной форматирующей переменной, которая делает вашу подпрограмму потоко безопасной.