Имя: Пароль:
1C
 
Как преобразовать дату SQL в 1С вида 2021-05-04T00:00:00.000Z
0 Слесарь74
 
17.05.21
17:14
делаю так
XmlЗначение(Тип("Дата"), СтрокаДок.DTDOC)
но получаю со смещением 3 часа, т.е. не 4 мая 2021 00 часов, а 4 мая 2021 03 часа

Знаю, как то можно решить проблему. Кто в курсе?
1 Garykom
 
гуру
17.05.21
17:16
Бетонщики уже были, ты сантехник?
2 программистище
 
17.05.21
17:22
74 это разряд?
3 Garykom
 
гуру
17.05.21
17:29
(0) Z убери и все что после

да вместо
Дата = XMLЗначение(Тип("Дата"), Строка);

можно
Дата = ПрочитатьДатуJSON(Строка, ФорматДатыJSON.ISO);
4 Sserj
 
17.05.21
17:33
Так у тебя наверно компутер имеет часовую зону +3 от гринвича.
Отрезай последнюю Z будет преобразовывать как просто datetime а не datetimeoffset.
5 Слесарь74
 
17.05.21
17:42
(3)спасибо, Z убрал и заработало.

ПрочитатьДатуJSON(Строка, ФорматДатыJSON.ISO) - не работает - смещение +3
6 Garykom
 
гуру
17.05.21
17:45
(5) Дата может записываться в нескольких вариантах (для примера используется дата 10 марта 2019 13:14:15 в зоне UTC+4):

как локальная дата: 2019-03-10T13:14:15;
как локальная дата с указанием смещения: 2019-03-10T13:14:15+04:00;
как дата в UTC: 2019-03-10T09:14:15Z.
7 fisher
 
17.05.21
17:50
(6) Ты к тому, что ему изначально правильно возвращает, а ТС пытается обработать универсальное время как локальное?
8 fisher
 
17.05.21
17:53
Или он хочет на выходе получить тоже универсальное время, а ему преобразовывает в локальное? Ну, тогда по-идее можно просто вызывать УниверсальноеВремя() и выполнить обратное преобразование.
9 fisher
 
17.05.21
17:54
Хотя надежнее все-таки Z срезать :)
10 Garykom
 
гуру
17.05.21
18:05
(7) просто показал что в строковом "json формате" дата может по разному быть
а что там у него из sql возвращается и что ему надо хз

можно и Z заменить на нужное +03:00 или -03:00
Ошибка? Это не ошибка, это системная функция.