Progulki-po-reke-moskwa.ru

прогулки на теплоходе по Москве реке

UNIX-время

16-04-2023

Перейти к: навигация, поиск

UNIX-время (англ. Unix time) или POSIX-время — система описания моментов во времени, принятая в UNIX и других POSIX-совместимых операционных системах. Определяется как количество секунд, прошедших с полуночи (00:00:00 UTC) 1 января 1970 года (четверг); время с этого момента называют «эрой UNIX» (англ. Unix Epoch).

Время UNIX согласуется с UTC — в частности, при объявлении високосных секунд UTC соответствующие номера секунд повторяются, то есть високосные секунды не учитываются.

Представление времени в виде количества секунд удобно использовать для сравнения и хранения дат (дата и время в этом формате занимают всего 4 или 8 байтов). При необходимости обращения к элементам дат (день, месяц, год) секунды можно преобразовать в любой подходящий формат (и наоборот), но если такие преобразования выполняются часто, они снижают производительность.

В программах для хранения UNIX-времени используется целочисленный знаковый тип. Знаковость упрощает вычисление разницы в секундах между двумя моментами времени, которая может быть отрицательной. 32-битные числа со знаком могут ссылаться на моменты времени от пятницы 13 декабря 1901 года 20:45:52 до вторника 19 января 2038 года 03:14:07 включительно.

Чтобы узнать текущее UNIX-время в большинстве UNIX-подобных систем, можно использовать команду date +%s.

«Юбилейные» значения

Время Количество секунд
9 сентября 2001 года, 01:46:40 UTC 1 000 000 000 (1 гигасекунда)
10 января 2004 года, 13:37:04 UTC 1 073 741 824=230 (1 гибисекунда)
18 марта 2005 года, 01:58:31 UTC 1 111 111 111
6 сентября 2008 года 12:12:05 UTС 1 220 703 125 = 513
13 февраля 2009 года, 23:31:30 UTC 1 234 567 890

Проблема 2038

19 января 2038 года в 03:14:08 по всемирному времени значение переменной типа time_t, отсчитывающей число секунд, прошедших с 1 января 1970 года, достигнет 231, что может привести к ошибочной интерпретации этого числа как отрицательного. Возможное решение данной проблемы состоит в использовании для хранения времени не 32-битной, а 64-битной переменной (что и делается во всех современных 64-битных операционных системах), этого хватит на 292 млрд лет.

См. также


Ссылки

  • Конвертер UNIX-времени

UNIX-время.

© 2021–2023 progulki-po-reke-moskwa.ru, Россия, Нальчик, ул. Терская 11, +7 (8662) 65-82-84