Настраиваемые форматы даты и времени
Функция FormatDateTime может использоваться для форматирования параметров типа "дата" и "дата и время".
Форматы могут быть стандартными и настраиваемыми.
Настраиваемые форматы:
"d."* - день месяца, в диапазоне от 1 до 31
"dd" - день месяца, в диапазоне от 01 до 31
"ddd" - сокращенное название дня недели
"dddd" - полное название дня недели
"h."* - час в 12-часовом формате от 1 до 12
"hh"* - час в 12-часовом формате от 01 до 12
"H."* - час в 24-часовом формате от 0 до 23
"HH." - час в 24-часовом формате от 00 до 23
"m." - минуты, в диапазоне от 0 до 59
"mm" - Минуты, в диапазоне от 00 до 59
"M."* - месяц, в диапазоне от 1 до 12
"MM" - месяц, в диапазоне от 01 до 12
"MMM" - сокращенное название месяца
"MMMM" - полное название месяца
"s."* - секунды, в диапазоне от 0 до 59
"ss" - секунды, в диапазоне от 00 до 59
"y."* - год, в диапазоне от 0 до 99
"yy" - год, в диапазоне от 00 до 99
"yyy" - год в виде как минимум трех цифр
"yyyy" - год в виде четырехзначного числа
"z."* - часовой сдвиг от времени в формате UTC (универсального времени), без нулей в начале. (не использовать для полей типа "дата")
"zz" - часовой сдвиг от времени в формате UTC (универсального времени) с нулями в начале для значений из одной цифры. (не использовать для полей типа "дата")
"zzz" - Сдвиг в часах и минутах от времени в формате UTC (универсального времени). (не использовать для полей типа "дата")
*Точки поставлены, только чтобы не спутать со стандартными форматами, которые записываются в виде одной буквы.
Разделители
Обычно применяется "." для дат и ":" для времени.
Не используйте в качестве разделителей кавычки, скобки, знак процента, обратный слэш и слэш. Последний заменится на точку, а остальные нарушат форматирование.
Все другие знаки, в том числе пробелы или отсутствие разделителя, разрешены.
Для получения нужного вида сочетаем форматы выше.
Форматирование поля типа "дата"
Пример.
Поле "Дата рождения", системное имя 'BirthDate', тип "дата".
Значение поля у клиента: "05.07.1993"
Запись параметра -> как он будет выглядеть в сформированном письме:
${Recipient.BirthDate}
-> 05.07.1993 00:00:00
${FormatDateTime(Recipient.BirthDate, "d.")}
-> 5.
${FormatDateTime(Recipient.BirthDate, "dd")}
-> 05
${FormatDateTime(Recipient.BirthDate, "ddd")}
-> пн
${FormatDateTime(Recipient.BirthDate, "dddd")}
-> понедельник
${FormatDateTime(Recipient.BirthDate, "h.")}
-> 12.
${FormatDateTime(Recipient.BirthDate, "hh")}
-> 12
${FormatDateTime(Recipient.BirthDate, "H.")}
-> 0.
${FormatDateTime(Recipient.BirthDate, "HH.")}
-> 00.
${FormatDateTime(Recipient.BirthDate, "m.")}
-> 0.
${FormatDateTime(Recipient.BirthDate, "mm")}
-> 00
${FormatDateTime(Recipient.BirthDate, "M.")}
-> 7.
${FormatDateTime(Recipient.BirthDate, "MM")}
-> 07
${FormatDateTime(Recipient.BirthDate, "MMM")}
-> июл.
${FormatDateTime(Recipient.BirthDate, "MMMM")}
-> июль
${FormatDateTime(Recipient.BirthDate, "s.")}
-> 0.
${FormatDateTime(Recipient.BirthDate, "ss")}
-> 00
${FormatDateTime(Recipient.BirthDate, "y.")}
-> 93.
${FormatDateTime(Recipient.BirthDate, "yy")}
-> 93
${FormatDateTime(Recipient.BirthDate, "yyy")}
-> 1993
${FormatDateTime(Recipient.BirthDate, "yyyy")}
-> 1993
Примеры сочетаний
Запись параметра -> как он будет выглядеть в сформированном письме:
${FormatDateTime(Recipient.BirthDate, "d.M.yy h:m:s ddd")}
→ 5.7.93 12:0:0 пн
${FormatDateTime(Recipient.BirthDate, "dd.MM.yyyy hh:mm:ss dddd")}
->
05.07.1993 12:00:00 понедельник
${FormatDateTime(Recipient.BirthDate, "день: dd месяц: MM год: yyyy час: hh минуты: mm секунды: ss день недели: dddd")}
->
день: 05 месяц: 07 год: 1993 час: 12 минуты: 00 секунды: 00 день недели: понедельник
${FormatDateTime(Recipient.BirthDate, "d MMM yy H:m:s")}
->
5 июл. 93 0:0:0
${FormatDateTime(Recipient.BirthDate, "dd MMMM yyyy HH:mm:ss")}
->
05 июля 1993 00:00:00
Форматирование поля типа "дата и время"
Пример.
Дополнительное поле с системным именем 'DT', тип "дата и время".
Значение поля: "01.08.2024 18:34:00"
Часовой пояс проекта UTC +03:00
Запись параметра -> как он будет выглядеть в сформированном письме:
${Message.SendingDateTime}
-> 01.08.2024 18:34:00
${FormatDateTime(Message.SendingDateTime, "d.")}
-> 1.
${FormatDateTime(Message.SendingDateTime, "dd")}
-> 01
${FormatDateTime(Message.SendingDateTime, "ddd")}
-> чт
${FormatDateTime(Message.SendingDateTime, "dddd")}
-> четверг
${FormatDateTime(Message.SendingDateTime, "h.")}
-> 6.
${FormatDateTime(Message.SendingDateTime, "hh")}
-> 06
${FormatDateTime(Message.SendingDateTime, "H.")}
-> 18.
${FormatDateTime(Message.SendingDateTime, "HH.")}
-> 18.
${FormatDateTime(Message.SendingDateTime, "m.")}
-> 34.
${FormatDateTime(Message.SendingDateTime, "mm")}
-> 34
${FormatDateTime(Message.SendingDateTime, "M.")}
-> 8.
${FormatDateTime(Message.SendingDateTime, "MM")}
-> 08
${FormatDateTime(Message.SendingDateTime, "MMM")}
-> авг.
${FormatDateTime(Message.SendingDateTime, "MMMM")}
-> август
${FormatDateTime(Message.SendingDateTime, "s.")}
-> 0.
${FormatDateTime(Message.SendingDateTime, "ss")}
-> 00
${FormatDateTime(Message.SendingDateTime, "y.")}
-> 24.
${FormatDateTime(Message.SendingDateTime, "yy")}
-> 24
${FormatDateTime(Message.SendingDateTime, "yyy")}
-> 2024
${FormatDateTime(Message.SendingDateTime, "yyyy")}
-> 2024
${FormatDateTime(Message.SendingDateTime, "z.")}
-> +3.
${FormatDateTime(Message.SendingDateTime, "zz")}
-> +03
${FormatDateTime(Message.SendingDateTime, "zzz")}
-> +03:00
Примеры сочетаний:
Запись параметра -> как он будет выглядеть в сформированном письме:
${FormatDateTime(Message.SendingDateTime, "d.M.yy h:m:s ddd")}
->
1.8.24 6:34:0 чт
${FormatDateTime(Message.SendingDateTime, "dd.MM.yyyy hh:mm:ss UTC zzz dddd")}
->
01.08.2024 06:34:00 UTC +03:00 четверг
${FormatDateTime(Message.SendingDateTime, "день: dd месяц: MM год: yyyy; час: hh минуты: mm секунды: ss; день недели: dddd")}
->
день: 01 месяц: 08 год: 2024; час: 06 минуты: 34 секунды: 00; день недели: четверг
${FormatDateTime(Message.SendingDateTime, "d MMM yy H:m:s UTC zz")}
->
1 авг. 24 18:34:0 UTC +03
${FormatDateTime(Message.SendingDateTime, "dd MMMM yyyy HH:mm:ss UTC z")}
->
01 августа 2024 18:34:00 UTC +3