![]() |
|
Функция преобразования даты | ☑ | ||
---|---|---|---|---|
0
33554432
19.04.17
✎
16:36
|
Как преобразовать строку "2017-04-13" в дату?
|
|||
1
Волшебник
модератор
19.04.17
✎
16:37
|
ДАта("20170413")
|
|||
2
mehfk
19.04.17
✎
16:50
|
Дата('2017-04-13')
|
|||
3
azernot
19.04.17
✎
17:31
|
// Получение значения типа "Дата" из строки по формату шаблона
// // Параметры // <Строка> – <Строка> – строка содержащая значения литералов даты // (Например "03.07.1979 09:30:59") // <Шаблон> – <Строка> – Строка содержащая шаблон даты // (Например "ДД.ММ.ГГГГ ЧЧ:ММ:СС") // <Режим> - <Строка> –режим возвращаемого значения: // // Возвращаемое значение: // <Дата> – в случае Режим = "Дата" // <Строка> - в случае Режим = "Строка" (формат строки: ГГГГММДДччммсс) Функция ИзСтрокиВДату(Строка, Шаблон = "ДД.ММ.ГГГГ", Режим = "Дата") Экспорт Если НЕ ЗначениеЗаполнено(Строка) ТОгда Возврат Дата("00010101"); КонецЕсли; Попытка //Получим строковые значения литералов Год = Сред(Строка, Найти(Шаблон, "ГГГГ"),4); Если Число(СокрЛП(Год)) <30 Тогда Год = "20"+Строка(Формат(Число(СокрЛП(Год)), "ЧЦ=2; ЧН=00; ЧВН=; ЧГ=")); ИначеЕсли Число(СокрЛП(Год)) <100 Тогда Год = "19"+Строка(Формат(Число(СокрЛП(Год)), "ЧЦ=2; ЧН=00; ЧВН=; ЧГ=")); КонецЕсли; Месяц = Сред(Строка, Найти(Шаблон, "ММ"),2); День = Сред(Строка, Найти(Шаблон, "ДД"),2); ЕстьЧасы = Найти(Шаблон,"чч"); Если ЕстьЧасы>0 Тогда Час = Сред(Строка,ЕстьЧасы,2); Иначе Час = "0"; КонецЕсли; ЕстьМинуты = Найти(Шаблон,"мм"); Если ЕстьМинуты>0 Тогда Минута = Сред(Строка,ЕстьМинуты,2); Иначе Минута = "0"; КонецЕсли; ЕстьСекунды = Найти(Шаблон,"сс"); Если ЕстьСекунды>0 Тогда Секунда = Сред(Строка,ЕстьСекунды,2); Иначе Секунда = "0"; КонецЕсли; Год = Строка(Формат(Число(СокрЛП(Год)), "ЧЦ=4; ЧН=2000; ЧВН=; ЧГ=")); Месяц = Строка(Формат(Число(СокрЛП(Месяц)), "ЧЦ=2; ЧН=01; ЧВН=; ЧГ=")); День = Строка(Формат(Число(СокрЛП(День)), "ЧЦ=2; ЧН=01; ЧВН=; ЧГ=")); Час = Строка(Формат(Число(СокрЛП(Час)), "ЧЦ=2; ЧН=00; ЧВН=; ЧГ=")); Минута = Строка(Формат(Число(СокрЛП(Минута)), "ЧЦ=2; ЧН=00; ЧВН=; ЧГ=")); Секунда = Строка(Формат(Число(СокрЛП(Секунда)), "ЧЦ=2; ЧН=00; ЧВН=; ЧГ=")); Если Режим = "Дата" Тогда Возврат Дата(Год+Месяц+День+Час+Минута+Секунда); ИначеЕсли Режим = "Строка" Тогда Возврат Год+Месяц+День+Час+Минута+Секунда; Иначе Стр = Режим; Стр = СтрЗаменить(Стр,"ГГГГ",Год); Стр = СтрЗаменить(Стр,"ММ",Месяц); Стр = СтрЗаменить(Стр,"ДД",День); Стр = СтрЗаменить(Стр,"чч",Час); Стр = СтрЗаменить(Стр,"мм",Минута); Стр = СтрЗаменить(Стр,"сс",Секунда); Возврат Стр; КонецЕсли; Исключение Возврат Дата("00010101"); КонецПопытки; КонецФункции // ИзСтрокиВДату() |
|||
4
youalex
19.04.17
✎
17:35
|
XMLЗначение(Тип("Дата"), "2017-04-13")
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |