Сообщение от
drvlas
Никак не могу понять, как получить из структуры SystemTimeDate (библиотека SysLibTime.lib) время в формате POSIX (это которое в секундах от 1970-01-01-00:00:00).
У меня работает ФБ CurTimeEx из этой библиотеки. В нем мирно сосуществуют 64-битное системное время (с разрешающей способностью 1 мкс) и структура ГОД-МЕСЯЦ- и т.д.
Эту структуру я инициализирую, она отсчитывает правильное время и дату, когда нужно - я подрихтовую. Все окей. Имею дату и время.
А 64-битное системное время живет своей жизнью, сбрасываясь в ноль по ресету и не изменяясь при моих манипуляциях со структурой ГОД-МЕСЯЦ- и т.д.
Значит использовать 64-битную структуру для получения POSIX-времени я не могу. А должен как-то из нескольких UINT переменных ГОД, МЕСЯЦ и т.д. посчитать, сколько же секунд отделяет данный временной штамп от 1 января 1970 года.
Неужто действительно считать придется? Не верю... Должна быть какая-то функция преобразования.
myPOSIXtime: DWORD;
mySTD: SystemTimeDate;
...
myPOSIXtime := ФУНКЦИЯ(mySTD);
Или?
Дополнено: поигрался с RTC из Standard.Lib. там кагбэ должно было легко получиться
myPOSIXtime := DT_TO_DWORD( myRTC.CDT);
Однако сам ФБ RTC заставить работать у меня не получилось. Инициализируется, на входе EN даю TRUE, а время застыло...