Вход | Регистрация
 

Приходит строка "2020-03-20T19:12:43" - как ее в дату переформатировать ?

Приходит строка "2020-03-20T19:12:43" - как ее в дату переформатировать ?
Я
   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";
                    КонецЦикла;
                    Попытка
                        Возврат Дата(ЗначениеСайта);
                    Исключение
                        Возврат ЗначениеСайта;
                    КонецПопытки;
                КонецЕсли;
        КонецЕсли;
   Garikk
 
3 - 20.03.20 - 16:03
крындец...а какнить ПрочитатьДатуJSON(Строка, ФорматДатыJSON.ISO) не получится?
   Garikk
 
4 - 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
   lamme
 
7 - 20.03.20 - 16:06
(3)
о!
решено!


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

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
Здесь можно задать вопрос "Как сделать?" и получить кучу ответов, что тебе это делать не надо. Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.