|
Приходит строка "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) как антикрыло на Шаху
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |