Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Как более правильно на v77 дату(дата+время с точностью до милисек ) перевести в Timestamp?

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

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
Программист всегда исправляет последнюю ошибку.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.