Счетчик времени с даты рождения

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

Содержание

  • 1 Целочисленное представление
  • 2 Критичные значения
  • 3 Неувязка Apple iOS как Unix-системы
  • 4 Примечания
  • 5 Ссылки

Целочисленное представление [ править | править код ]

Unix-время представлено целым числом, которое возрастает с каждой прошедшей секундой без необходимости вычислений для определения года, месяца, денька, часа либо минутки для удобства восприятия человеком. Современное Unix-время согласуется с UTC — отсчет происходит в секундах СИ. Временной просвет 1-го денька практически постоянно разбит на 86 400 секунд , но при объявлении доп секунд составляет 86 401 секунду . Такие секунды, согласно Глобальному времени, сохраняют продолжительность дней синхронизированной с течением времени оборота планетки. В Unix-времени надлежащие номера секунд повторяются, другими словами високосные секунды не учитываются.

В момент времени 00:00:00 UTC 1 января 1970 года (четверг) Unix-время равно нулю. Начиная с сих пор, число растет на определённое количество в денек. Таковым образом, например, 16 сентября 2004 года в 00:00:00, спустя 12677 дней опосля начала отсчета Unix-времени, время будет представлено числом 12 677 × 86 400 = 1 095 292 800 , либо в случае с 17 декабря 2003 года в 00:00:00, через 12403 денька опосля начала отсчёта время будет являться числом 12403 × 86 400 = 1 071 619 200 . Расчеты могут быть также произведены в оборотном направлении, используя отрицательные числа. Например, дата 4 октября 1957 года 00:00:00, а это 4472 денька до начала отсчета, представлена в Unix-времени числом −4472 × 86 400 = −386 380 800 [1] .

Интересно почитать:  Как в excel сделать колонтитул

Любой денек число, представляющее Unix-время, рассчитывается описанным образом в UTC (00:00:00Z), и возрастает ровно на 1 в секунду, начиная с полночи. Как следует, момент времени 16-09-2004 17:55:43,54 , соответственный 64 543,54 секунды от полуночи данной нам даты, из примера выше, будет представлен в Unix-времени числом 1 095 292 800 + 64 543,54 = 1 095 357 343,54 . Для дат, предыдущих началу отсчета, число также растет, другими словами со временем приближается к нулю [2] .

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

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

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

Критичные значения [ править | править код ]

Малая дата в знаковом 32-битном представлении — 13 декабря 1901 года, 20:45:52 UTC (0x80000000, −2 147 483 648 секунд от 1 января 1970 года).

Потенциально критичной датой числилось 9 сентября 2001 года, 01:46:40 UTC, соответственное одной гигасекунде (млрд секунд) по Unix-времени, когда символьное десятичное представление превысило 9 позиций, что могло сказаться на работе неких мед приложений [3] .

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

Ссылка на основную публикацию
Adblock
detector