Имя: Пароль:
1C
 
Приходит строка "2020-03-20T19:12:43" - как ее в дату переформатировать ?
,
0 lamme
 
20.03.20
15:58
Собственно - вопрос в теме.
Разбирать по буквенно - не хочется.
Есть ли что то универсальное - готовое - типовое ?
1 ДенисЧ
 
20.03.20
16:02
Парси
Через СтрПолучитьСтроку() или подобные
2 Юрий Лазаренко
 
20.03.20
16:03
Если (СтрДлина(ЗначениеСайта) = 19 И Сред(ЗначениеСайта, 11, 1) = "T")
              Или (СтрДлина(ЗначениеСайта) = 18 И Сред(ЗначениеСайта, 3, 1) = "." И Сред(ЗначениеСайта, 6, 1) = ".")
              Или (СтрДлина(ЗначениеСайта) = 19 И Сред(ЗначениеСайта, 3, 1) = "." И Сред(ЗначениеСайта, 6, 1) = ".")
              Или (СтрДлина(ЗначениеСайта) = 10 И Сред(ЗначениеСайта, 5, 1) = "-" И Сред(ЗначениеСайта, 8, 1) = "-")
              Или (СтрДлина(ЗначениеСайта) = 10 И Сред(ЗначениеСайта, 3, 1) = "." И Сред(ЗначениеСайта, 6, 1) = ".") Тогда
                // Возможно дата
                Запрос = Новый Запрос;
                Запрос.Текст = "ВЫБРАТЬ
                               |    &ПроверяемаяСтрока КАК ПроверяемаяСтрока
                               |ГДЕ
                               |    (&ПроверяемаяСтрока ПОДОБНО &Шаблон1
                               |            ИЛИ &ПроверяемаяСтрока ПОДОБНО &Шаблон2
                               |            ИЛИ &ПроверяемаяСтрока ПОДОБНО &Шаблон3
                               |            ИЛИ &ПроверяемаяСтрока ПОДОБНО &Шаблон4
                               |            ИЛИ &ПроверяемаяСтрока ПОДОБНО &Шаблон5)";
                
                Запрос.УстановитьПараметр("ПроверяемаяСтрока", ЗначениеСайта);
                Запрос.УстановитьПараметр("Шаблон1", "[0-9][0-9][0-9][0-9][-][0-9][0-9][-][0-9][0-9]");
                Запрос.УстановитьПараметр("Шаблон2", "[0-9][0-9][0-9][0-9][-][0-9][0-9][-][0-9][0-9][T][0-9][0-9][:][0-9][0-9][:][0-9][0-9]");
                Запрос.УстановитьПараметр("Шаблон3", "[0-9][0-9][.][0-9][0-9][.][0-9][0-9][0-9][0-9][ ][0-9][0-9][:][0-9][0-9][:][0-9][0-9]");
                Запрос.УстановитьПараметр("Шаблон4", "[0-9][0-9][.][0-9][0-9][.][0-9][0-9][0-9][0-9][ ][0-9][:][0-9][0-9][:][0-9][0-9]");
                Запрос.УстановитьПараметр("Шаблон5", "[0-9][0-9][.][0-9][0-9][.][0-9][0-9][0-9][0-9]");
                Результат = Запрос.Выполнить();
                Если Результат.Пустой() Тогда
                    // Это не дата
                    Возврат ЗначениеСайта;
                Иначе
                    Если (СтрДлина(ЗначениеСайта) = 10 И Сред(ЗначениеСайта, 3, 1) = "." И Сред(ЗначениеСайта, 6, 1) = ".") Тогда
                        ЗначениеСайта = Прав(ЗначениеСайта, 4) + Сред(ЗначениеСайта, 4, 2) + Лев(ЗначениеСайта, 2);
                    КонецЕсли;
                    Если (СтрДлина(ЗначениеСайта) = 18 И Сред(ЗначениеСайта, 3, 1) = "." И Сред(ЗначениеСайта, 6, 1) = ".")
                      Или (СтрДлина(ЗначениеСайта) = 19 И Сред(ЗначениеСайта, 3, 1) = "." И Сред(ЗначениеСайта, 6, 1) = ".") Тогда
                        ЗначениеСайта = Сред(ЗначениеСайта, 7, 4) + Сред(ЗначениеСайта, 4, 2) + Лев(ЗначениеСайта, 2) + Сред(ЗначениеСайта, 12);
                    КонецЕсли;
                    ЗначениеСайта = СтрЗаменить(ЗначениеСайта, ":", "");
                    ЗначениеСайта = СтрЗаменить(ЗначениеСайта, "-", "");
                    ЗначениеСайта = СтрЗаменить(ЗначениеСайта, "T", "");
                    Пока СтрДлина(ЗначениеСайта) < 14 Цикл
                        ЗначениеСайта = ЗначениеСайта + "0";
                    КонецЦикла;
                    Попытка
                        Возврат Дата(ЗначениеСайта);
                    Исключение
                        Возврат ЗначениеСайта;
                    КонецПопытки;
                КонецЕсли;
        КонецЕсли;
3 Garikk
 
20.03.20
16:03
крындец...а какнить ПрочитатьДатуJSON(Строка, ФорматДатыJSON.ISO) не получится?
4 Garikk
 
20.03.20
16:04
и в самом то деле https://its.1c.ru/db/v8std/content/763/hdoc
5 Генератор
 
20.03.20
16:06
XMLЗначение(Тип("Дата"),"2020-03-20T19:12:43")
6 МихаилМ
 
20.03.20
16:06
7 lamme
 
20.03.20
16:06
(3)
о!
решено!


даже не знал что такое есть

спасибо
8 Garikk
 
20.03.20
16:08
(2) (6) чесслово, плакать хочется от такого ;)
9 Garikk
 
20.03.20
16:08
я уже 5 лет как 1С не занимаюсь, решение за 2 минуты нашел
10 runoff_runoff
 
20.03.20
16:12
(8) это как синие писалки и брязговики Спарцо ставить на ТАЗ
11 runoff_runoff
 
20.03.20
16:12
(8) как антикрыло на Шаху