Преобразование строки в дату.

Печать (Ctrl+P)

Работа со строками в БСП 3.0

Общий модуль СтроковыеФункцииКлиентСервер

Для преобразования текст ячейки табличного документа в дату используется один из двух вариантов функции преобразования значений :

  • Вариант 1 – по составляющим : Дата(<Год>, <Месяц>, <День>, <Час>, <Минута>, <Секунда>)
  • Вариант 2 – по строке – Дата( <строка>), , где Строка должна содержать дату в локальном формате даты или в каноническом виде YYYYMMDDHHMMSS.

Однако, не написано в документации какой из вариантов предпочтительнее. Я всегда пользуюсь процедуру из общего модуля библиотеки стандартных подсистем, которая преобразует исходную строку ячейки в дату. :

  Дата  = СтроковыеФункцииКлиентСервер.СтрокаВДату(Значение );   

где Значение – это строка, которую необходимо привести к дате. Формат даты должен быть в виде “ДД.ММ.ГГГГ” или “ДД/ММ/ГГ” или “ДД-ММ-ГГ”, Например, “23.02.1980” или “23/02/80”.

Функция СтрокаВДату(Знач Значение) Экспорт
 Значение = СтрЗаменить(Значение, " ", "");
 Значение = СокрЛП(СтрЗаменить(Значение, ".", ""));
 Значение = СокрЛП(СтрЗаменить(Значение, "/", "")); 
Значение = СокрЛП(СтрЗаменить(Значение, "-", "")); 
Значение = Сред(Значение, 5) + Сред(Значение, 3, 2) + Лев(Значение, 2);
 Если СтрДлина(Значение) = 6 Тогда 
    Год = СтрокаВЧисло(Лев(Значение, 2));
     Если Год = Неопределено Тогда
          Возврат Дата('0001.01.01');
     КонецЕсли; 
    Значение = ?(Год > 29, "19", "20") + Значение; 
КонецЕсли; 
ОписаниеТипа = Новый ОписаниеТипов("Дата"); 
Результат    = ОписаниеТипа.ПривестиЗначение(Значение);
 Возврат Результат;
 КонецФункции 

См. также
Previous Article
Next Article

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.