Время (UNIX)
Материал из Википедии — свободной энциклопедии
UNIX-время или POSIX-время (англ. Unix time) — способ описания хода времени, принятый в UNIX и других POSIX-совместимых операционных системах.
Моментом начала отсчёта считается полночь (по UTC) с 31 декабря 1969 года на 1 января 1970, время с этого момента называют «эрой UNIX» (Unix Epoch).
Время UNIX согласуется с UTC, в частности, при объявлении високосных секунд UTC соответствующие номера секунд повторяются.
19 января 2038 года в 03:14:08 по всемирному времени произойдёт переполнение 32-битной переменной типа time_t
, в которой хранится число секунд, прошедших с 1 января 1970 года. Решение данной проблемы состоит в использовании 64-битной переменной для хранения времени, чего хватит ещё на 300 миллиардов лет.
Такой способ хранения времени очень удобно использовать при сравнении дат (с точностью до секунды), а также для хранения дат: при необходимости их можно преобразовать в любой удобочитаемый формат. Дата и время в этом формате также занимают очень мало места (4 или 8 байт, в зависимости от размера машинного слова), поэтому его разумно использовать для хранения больших объёмов дат. Недостатки в производительности могут проявиться при очень частом обращении к элементам даты, вроде номера месяца и т. п. Но в большинстве случаев эффективнее хранить время в виде одной величины, а не набора полей.
Чтобы узнать текущее UNIX-время в большинстве UNIX-подобных систем, можно использовать команду date +%s
.