UNIX время – это число с плавающей точкой, в UTC (нулевой часовой пояс), без дополнительных секунд. Всё верно? Запуталась уже =_=
Вроде бы UTC сам по себе содержит дополнительные секунды, но я могу ошибаться
Дата рождения: 01.11.1983
Тотальная неудачница и убийца жёстких дисков. Самая большая поклонница Ариэль. Член ордена Вселенского тормоза имени Осаки-сан. Любительница каваййных переднеприводных машинок. Суккуб на полставки. Когти прилагаются.
UNIX время – это число с плавающей точкой, в UTC (нулевой часовой пояс), без дополнительных секунд. Всё верно? Запуталась уже =_=
Вроде бы UTC сам по себе содержит дополнительные секунды, но я могу ошибаться
Не с плавающей, целое. Раньше было 32 бита, сейчас повсеместно 64.
Мне в разных программах попадались записи вида «254542354.23523». А тут вообще написано, что real, начиная с какой-то версии Цэ:
https://en.cppreference.com/w/c/chrono/time_t
Вот записи с точкой — они получаются не из time_t
, а из:
struct timeval {
time_t tv_sec; /* seconds */
long int tv_usec; /* microseconds */
};
и из:
struct timespec {
time_t tv_sec; /* seconds */
long int tv_nsec; /* nanoseconds */
};
В зависимости от того, насколько тебе точное нужно время, дёргаешь соответствующую функцию, для time_t
у тебя функция time_t time (time_t *result)
, если timeval
, то функция int gettimeofday (struct timeval *tp, void *tzp)
, и так далее.
Вот тут краткий референс по типам: https://www.gnu.org/softwar...node/Time-Types.html
А тут по функциям: https://www.gnu.org/softwar...etting-the-Time.html
Linda-chan, вы все неправы (с)
https://www.freepascal.org/...ystem/tdatetime.html
type TDateTime = type Double;
Но в целом да. Это количество секунд, прошедших с
1970-01-01 00:00:00+00:00
Если именно секунд, то должно быть целое число, но мне попадались варианты с точкой для милисекунд. И в Цэ вроде как оно с точкой.
Linda-chan, нет, количество секунд это не обязательно целое число. Секунда не есть квант времени
Окай.
Такие времена выражаются не обычной time_t, а структурой из двух целых, секунды и милли/наносекунды (struct timeval/timespec).
Сколько у тебя секунд прошло с
1970-01-01 00:00:00.123+00:00
до1970-01-01 00:00:00.654+00:00
Ответ: 0.531 секунда
Допустим, тип by design округляет это значение.
Linda-chan, ну полных секунд прошло 0
В JS
getDate()
возвращает целое число в миллисеках. Это надо делить на 1000, само собой