Преобразование строки в дату.
Работа со строками в БСП 3.0
Общий модуль СтроковыеФункцииКлиентСервер
Для преобразования текст ячейки табличного документа в дату используется один из двух вариантов функции преобразования значений :
- Вариант 1 – по составляющим : Дата(<Год>, <Месяц>, <День>, <Час>, <Минута>, <Секунда>)
- Вариант 2 – по строке – Дата( <строка>), , где Строка должна содержать дату в локальном формате даты или в каноническом виде YYYYMMDDHHMMSS.
Однако, не написано в документации какой из вариантов предпочтительнее. Я всегда пользуюсь процедуру из общего модуля библиотеки стандартных подсистем, которая преобразует исходную строку ячейки в дату. :
Дата = СтроковыеФункцииКлиентСервер.СтрокаВДату(Значение );
где Значение – это строка, которую необходимо привести к дате. Формат даты должен быть в виде “ДД.ММ.ГГГГ” или “ДД/ММ/ГГ” или “ДД-ММ-ГГ”, Например, “23.02.1980” или “23/02/80”.
Функция СтрокаВДату(Знач Значение) ЭкспортЗначение = СтрЗаменить(Значение, " ", "");
Значение = СокрЛП(СтрЗаменить(Значение, ".", ""));
Значение = СокрЛП(СтрЗаменить(Значение, "/", ""));
Значение = СокрЛП(СтрЗаменить(Значение, "-", ""));
Значение = Сред(Значение, 5) + Сред(Значение, 3, 2) + Лев(Значение, 2);
Если СтрДлина(Значение) = 6 Тогда
Год = СтрокаВЧисло(Лев(Значение, 2));
Если Год = Неопределено Тогда
Возврат Дата('0001.01.01');
КонецЕсли;
Значение = ?(Год > 29, "19", "20") + Значение;
КонецЕсли;
ОписаниеТипа = Новый ОписаниеТипов("Дата");
Результат = ОписаниеТипа.ПривестиЗначение(Значение);
Возврат Результат;
КонецФункции См. также