HelpF.pro

Строку в дату по форматной строке

Код 1C v 8.х
 // Процедура СтрокаВДату преобразует строку в дату по шаблону форматной строки
//
// Параметры
//  Строка - строка, содержащая дату,
//  ФорматДаты - форматная строка вида:
// [dd MM yy]
// [yy-MM-dd HH:mm]
// [dd MM yy HH mm ss]
// [dd MM yyyy]
// [MM dd, yyyy, HH:mm]
// [dd.MM.yy]
// [MM, dd, yyyy]
// [yyyyMMdd]
// [HH-mm-ss, dd-MM-yy]
// [dd]
// [dd MM HH:mm:ss yyyy]
// [HH:mm:ss]
// [HH:mm]
// [yyyy-MM-dd HH:mm:ss]
// [yyyy-MM-dd]
// [yyyy/MM/dd]
// [dd/MM/yy]
// [MM dd yyyy]
// [yyyy-MM]
// [yyyy]
// [MM, dd, yyyy]
// [dd-MM-yyyy]
// [ddMMyyyy]
//
Функция СтрокаВДату(Знач Строка, Знач ФорматДаты) Экспорт
Ч = Новый Соответствие; 
Для ё = 1 По СтрДлина(ФорматДаты) + 6 Цикл 
   Ч[Сред(ФорматДаты + "dMyHms", ё, 1)] = 0
КонецЦикла; 
Для ё = 1 По СтрДлина(ФорматДаты) Цикл 
   Ч[Сред(ФорматДаты, ё, 1)] = 10 * Ч[Сред(ФорматДаты, ё, 1)] + Найти("123456789", Сред(Строка, ё, 1));
КонецЦикла; 
Ч["y"] = Ч["y"] + ?(0 < Ч["y"] И Ч["y"] < 50, 2000, ?(0 < Ч["y"] И Ч["y"] < 100, 1900, 0));
Возврат Дата(Макс(Ч["y"], 1), Макс(Ч["M"],1), Макс(Ч["d"],1), Ч["H"], Ч["m"], Ч["s"]);
КонецФункции

Источник


Опубликовано на сайте: https://HelpF.pro
Прямая ссылка: https://HelpF.pro/faq/view/1822.html