Имя: Пароль:
1C
1C 7.7
v7: Как более правильно на v77 дату(дата+время с точностью до милисек ) перевести в Timestamp?
,
0 Z1
 
10.10.19
18:49
Как более правильно на v77 дату (дата время с точностью до милисек ) перевести в Timestamp ?
1 vcv
 
10.10.19
18:58
А что вы подразумеваете под "77 дату (дата время с точностью до милисек)" ?
2 Garykom
 
гуру
10.10.19
19:12
(0) Сколько миллисекунд в сутках знаешь? Ну вот и умножь на кол-во дней с 1 января, 1970 года.
3 Z1
 
10.10.19
19:14
х(1) ничего не подразумеваю
ну можно и так сказать
есть 7 чисел
день месяц год час  минута секунда милисиек
как получить Timestamp
4 Z1
 
10.10.19
19:18
(2) Мне бы хотелось получить точно , правильно и с наименьшими для меня  усилиями ( в смысле написания кода )
Я даже не знаю правильно ли 1с посчитает СколькоДней = ТекущаяДата() - '01.01.1970';  -  так далеко дни еще не отнимал
5 Garykom
 
гуру
10.10.19
19:21
(4) Воспользуйся внешними относительно 1С средствами.
6 Kigo_Kigo
 
10.10.19
20:42
если без миллисекунд то
XTimestamp = Строка(Строка(ГодДата)+ "-" + Строка(МесяцДата) + "-" + Строка(ДеньДата) + "T"
    + Строка(ТекущееВремя()) + ".000Z") ;
7 Z1
 
10.10.19
20:53
(6) мне нужно одно целое число ( и у тебя ошибки есть для февраля надо 02 а у тебя будет 2 )
8 Garykom
 
гуру
10.10.19
20:54
(6) Это XML дата время а не timestamp
9 Garykom
 
гуру
10.10.19
20:55
(7) Недавно делал:

Функция ДатаВремяXMLДетально(Год, Месяц, ЧислоМесяца, Часы = 0, Минуты = 0, Секунды = 0, ЧасовойПояс = 3)
    Результат = "";
    Результат = Результат + Формат(Год, "Ч(0)4")+"-"+Формат(Месяц, "Ч(0)2")+"-"+Формат(ЧислоМесяца, "Ч(0)2");
    Результат = Результат + "T" + Формат(Часы, "Ч(0)2")+":"+Формат(Минуты, "Ч(0)2")+":"+Формат(Секунды, "Ч(0)2");
    
    РазделительПояс = "Z";
    Если ЧасовойПояс>0 Тогда
        РазделительПояс = "+";
    ИначеЕсли ЧасовойПояс<0 Тогда
        РазделительПояс = "-";
    КонецЕсли;
    Результат = Результат + РазделительПояс;
    
    Если РазделительПояс<>"Z" Тогда
        Результат = Результат + Формат(ЧасовойПояс, "Ч(0)5.2:")
    КонецЕсли;
    
    Возврат Результат;
КонецФункции // ДатаВремяXML
10 Garykom
 
гуру
10.10.19
20:56
(9)+ Но без миллисекунд, они по стандарту не обязательны
11 Garykom
 
гуру
10.10.19
20:59
Кстати прикол с секундами в том что их периодически корректируют для выравнивания с солнечным временем.
Т.е. в некоторых последних минутах в последнем часе в редких сутках не 60 а 61 секунда бывает ))
12 Kigo_Kigo
 
10.10.19
21:01
(7) (8)
Это для запросов с сайтами, замечательно работает уже лет 5 наверно, ошибок нет
13 Kigo_Kigo
 
10.10.19
21:04
Если принципиально "2" и "02", делов то
XTimestamp = Строка(Строка(ГодДата)+ "-" + ?(СтрДлина(Строка(МесяцДата) = 1,"0"+Строка(МесяцДата),Строка(МесяцДата)) + "-" + Строка(ДеньДата) + "T"
    + Строка(ТекущееВремя()) + ".000Z") ;
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс