FormatDate

From SunFlurry wiki
Jump to: navigation, search
  FormatDate (Функции работы со строками, датами)
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Исключения:Невозможно превратить в строку, дату
Визуальность:Нет

Функция производит перекодировку даты и времени в строковой формат по указанному шаблону, используя указанный язык.

Синтаксис

FormatDate(<Дата>,<Шаблон форматирования (STRING)>,<Язык форматирования (STRING)>):<Результат (STRING)>

Аргументы

  • <Дата> - Дата, которую необходимо преобразовать в строковой формат.
  • <Шаблон форматирования> - (необязательный аргумент) Строковое представление используется как текстовый шаблон для форматирования результата. Если шаблон не задан (пустая строка), функция произведет простое форматирование исходной даты в виде dd.mm.YYYY hh:tt:ss.ppp, при этом часть .ppp будет опущена, если время даты задано точно в секундах, и hh:tt:ss.ppp будет опущена, если дата задана на начало дня. В шаблоне могут присутствовать любые символы, однако, определенные комбинации символов будут превращены при форматировании в части исходной даты, все остальные символы, не принадлежащие заданным заранее комбинациям, будут скопированы в результат без изменения. Каждая комбинация состоит из заранее определенного числа символов или любого числа символов, см. ниже. Шаблон может включать следующие комбинации символов:
Комбинация символов Изменяемая длина Описание
d или D Да Подставляет числовое значение дня месяца даты. Количество символов определяет минимальную длину результата, результат дополняется ведущими нулями. К примеру D возвращает числа 1, 2, 12 и пр., DD возвращает числа 01, 02, 12 и пр., DDD возвращает числа 001, 002, 012 и пр.
n Да Подставляет числовое значение номера дня недели даты. Первым днем недели является понедельник. Количество символов определяет минимальную длину результата, результат дополняется ведущими нулями. К примеру n возвращает числа 1, 2, 3, nn возвращает числа 01, 02, 03.
N Подставляет три первых буквы наименования дня недели даты. Первым днем недели является понедельник. Для русского шаблона будут подставлены следующие значения: Пнд, Втр, Срд, Чтв, Пят, Суб, Вск. Для английского шаблона будут подставлены следующие значения: Mon, Tue, Wed, Thu, Fri, Sat, Sun.
NN Подставляет полное наименование дня недели даты. Первым днем недели является понедельник. Для русского шаблона будут подставлены следующие значения: Понедельник, Вторник, Среда, Четверг, Пятница, Суббота, Воскресенье. Для английского шаблона будут подставлены следующие значения: Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday.
m Да Подставляет числовое значение номера месяца даты. Количество символов определяет минимальную длину результата, результат дополняется ведущими нулями. К примеру m возвращает числа 1, 2, 11, mm возвращает числа 01, 02, 11.
M Подставляет три первых буквы наименования месяца даты. Для русского шаблона будут подставлены следующие значения: Янв, Фев, Мар, Апр, Май, Июн, Июл, Авг, Сен, Окт, Ноя, Дек. Для английского шаблона будут подставлены следующие значения: Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec.
MM Подставляет полное наименование месяца даты. Для русского шаблона будут подставлены следующие значения: Январь, Февраль, Март, Апрель, Май, Июнь, Июль, Август, Сентябрь, Октябрь, Ноябрь, Декабрь. Для английского шаблона будут подставлены следующие значения: January, February, March, April, May, June, July, August, September, October, November, December.
MMM Подставляет полное наименование месяца даты в родительном падеже (когда применимо). Для русского шаблона будут подставлены следующие значения: Января, Февраля, Марта, Апреля, Мая, Июня, Июля, Августа, Сентября, Октября, Ноября, Декабря. Для английского шаблона будут подставлены следующие значения: January, February, March, April, May, June, July, August, September, October, November, December.
Y Да Подставляет числовое значение года даты. Количество символов определяет минимальную длину результата, результат дополняется ведущими нулями. Употребительно к году, обычная запись выглядит, как YYYY.
y Да Подставляет числовое значение года даты, год записан двумя последними числами (2021 записывается, как 21). Количество символов определяет минимальную длину результата, результат дополняется ведущими нулями. Употребительно к году, обычная запись выглядит, как yy.
q или Q Да Подставляет числовое значение номера квартала даты. Количество символов определяет минимальную длину результата, результат дополняется ведущими нулями. К примеру q возвращает числа 1, 2, 3, qq возвращает числа 01, 02, 03.
o или O Да Подставляет числовое значение номера дня года даты. Количество символов определяет минимальную длину результата, результат дополняется ведущими нулями. К примеру o возвращает числа 1, 2, 123, oo возвращает числа 01, 02, 123.
w или W Да Подставляет числовое значение номера недели в году. Количество символов определяет минимальную длину результата, результат дополняется ведущими нулями. К примеру w возвращает числа 1, 2, 3, ww возвращает числа 01, 02, 03. Первой неделей года считается неделя, в которую входит 1 января данного года. Последние числа года могут входить в последнюю неделю года, также как и в первую неделю следующего года, они могут иметь двоякое представление. Данная функция будет относить их к последней неделе уходящего года. Пример день 31.12.2018 принадлежит 53 неделе 2018 года и 1 неделе 2019 года, данная функция будет отдавать 53 употребительно к дате 31.12.2018 и 1 употребительно к дате 01.01.2019.
h Да Подставляет числовое значение часа даты. Количество символов определяет минимальную длину результата, результат дополняется ведущими нулями. К примеру h возвращает числа 1, 2, 12, hh возвращает числа 01, 02, 12. Используется 24-часовой формат.
H или HH Подставляет числовое значение часа даты. Количество символов определяет минимальную длину результата, результат дополняется ведущими нулями. К примеру H возвращает числа 1, 2, 11, HH возвращает числа 01, 02, 11. Используется 12-часовой формат.
HHH или HHHH Подставляет числовое значение часа даты с символами интервала (вариант 1). Используется 12-часовой формат. Количество символов определяет минимальную длину результата, результат дополняется ведущими нулями. К примеру HHH возвращает числа 1 AM, 2 PM, 11 AM, HHHH возвращает числа 01 AM, 02 PM, 11 AM.
HHHНН или HHHННH Подставляет числовое значение часа даты с символами интервала (вариант 2). Используется 12-часовой формат. Количество символов определяет минимальную длину результата, результат дополняется ведущими нулями. К примеру HHHНН возвращает числа 1 a.m., 2 p.m., 11 a.m., HННHHH возвращает числа 01 a.m., 02 p.m., 11 a.m..
AM Подставляет символы 12-часового интервала времени AM или PM.
am Подставляет символы 12-часового интервала времени a.m. или p.m. (вариант 2).
t или T Да Подставляет числовое значение минуты даты. Количество символов определяет минимальную длину результата, результат дополняется ведущими нулями. К примеру t возвращает числа 1, 2, 11, tt возвращает числа 01, 02, 11.
s или S Да Подставляет числовое значение секунды даты. Количество символов определяет минимальную длину результата, результат дополняется ведущими нулями. К примеру s возвращает числа 1, 2, 11, ss возвращает числа 01, 02, 11.
p или P Да Подставляет числовое значение миллисекунды даты. Количество символов определяет минимальную длину результата, результат дополняется нулями с конца строки. Максимальное количество цифр равно трем, цифры после первых трех будут представлены нулями в конце числа. К примеру, если ppp возвращает числа 001, 012, 211, то pppp возвращает числа 0010, 0120, 2110, pp возвращает числа 00, 01, 21.
f Нет Подставляет строку текущего смещения времени относительно UTC в формате "+??:??" или "-??:??". Строка всегда имеет длину 6 символов.
"" Превращается в символ "
"<выражение>" Да Выражение внутри двойных кавычек подставляется в результат без изменения. Таким образом можно использовать знаки, которые приводили бы к подставлению частей даты. Пример: DD "of" MM YYYY позволяет получить в результате слово of вместо номера дня года.
  • <Язык форматирования (STRING)> - (необязательный аргумент) Две буквы языка форматирования в латинской нотации. По умолчанию используется язык сборки или язык, заданный функцией SelectLanguage. Словарь перевода задан в файлах профайла, находящихся в подпапке Profiles папки клиента. Файлы имеют формат UTF-16 с BOM. Файлы должны иметь наименование Common.<язык>.sfs. Т.е., для словая русского языка используется файл Common.ru.sfs, английского Common.en.sfs. Файл словаря содержит кроме слов, связанных с превращением в текстовый формат даты и времени, также слова для создания прописи из чисел, прописи наименований валют и пр.

Возвращаемое значение

Функция всегда возвращает строку UTF-16.

Примеры

Message(FormatDate('12.10.2015 12:00:05',"DD ""of"" MM YYYY, HHHHH tt:ss","en"));
//Будет выведено "12 of October 2015, 12 p.m. 00:05"

Message(FormatDate('12.10.2015 12:00:05',"DD MMM YYYY г., hh:tt:ss.ppp","ru"));
//Будет выведено "12 Октября 2015 г., 12:00:05.000"

Message(FormatDate('12.10.2015 12:00:05',"dd.mm.yy"));
//Будет выведено "12.10.15"

Message(FormatDate('12.10.2015 12:00:05',"YYYYmmdd"));
//Будет выведено "20151012"