Unix время что это
Unix time конвертер (Конвертер времени Unix онлайн)
Обычная дата(Human readable time) | Секунды |
1 минута | 60 секунд |
1 час | 3600 секунд |
1 день | 86400 секунд |
1 неделя | 604800 секунд |
1 месяц (30.44 дней) | 2629743 секунд |
1 год (365.24 дней) | 31556926 секунд |
Конвертивание эпохи Unix в человекопонятную дату(human readable date)
Unix дата начала и конца года, месяца или дня
Перевод секунд в дни, часы и минуты
Как получить Unix время в.
Конвертирование даты в Unix время в.
Конвертирование Unix времеми в понятную дату(human readable date).
Для чего нужен инструмент «Unixtime конвертер»?
Данный инструмент, в первую очередь, будет полезен веб-мастерам, которые постоянно имеют дело с большими объемами дат или часто в своей работе обращаются к их элементам. С помощью инструмента «Unixtime конвертер» можно легко конвертировать Unix время в понятную для пользователя дату (и наоборот), узнать текущее Unix epoch время, а также получить Unix время в различных языках программирования, СУБД и операционных системах.
Что такое Unix время?
Эра Unix (Unix epoch) началась в ночь с 31 декабря 1969 года на 1 января 1970 года. Именно эту дату взяли за точку отсчета «компьютерного» времени, которое исчисляется в секундах и занимает очень мало места на диске – всего 4 или 8 байт. С помощью такого способа кодирования программисты могут «спрятать» любую дату в одно число, и легко конвертировать его обратно в понятный пользователям формат.
Unix время (еще его называют Unix time или POSIX time) удобно использовать в различных операционных системах и языках программирования, так как оно отображается в виде одной величины, а не определенного количества полей, занимающих место. К тому же, UNIX time полностью соответствует стандарту UTC (в том числе и в високосных годах) – в таком случае соответствующие значения секунд просто повторяются.
Пару слов о терминах.
Итак, Unix-временем (или POSIX-временем) считается количество секунд, которые прошли с полуночи 1 января 1970 года до настоящего времени.
Unix Timestamp (временная метка) – это «зафиксированное» время, иными словами – конкретная дата, запечатленная в числе.
UTC (Universal Coordinated Time) – это Всемирное координированное время, которое «фиксируется» на нулевом меридиане, и от которого ведется отсчет географических часовых поясов.
Насколько «долговечна» данная система?
Всего лишь через пару десятков лет, а именно 19 января 2038 года в 03:14:08 по UTC Unix time достигнет значения 2147483648, и компьютерные системы могут интерпретировать это число как отрицательное. Ключ к решению данной проблемы лежит в использовании 64-битной (вместо 32-битной) переменной для хранения времени. В таком случае, запаса числовых значений Unix time хватит человечеству еще на 292 миллиарда лет. Неплохо, правда?
Unix время – одно для всех
Если вы живете в Лондоне или Сан-Франциско, а ваши друзья – в Москве, то «сверить часы» можно по Unix time: эта система в данный момент времени едина для всего мира. Естественно, если время на серверах выставлено правильно. А с помощью инструмента «Unixtime конвертер» такая конвертация займет у вас доли секунды.
Что такое время Unix и когда была эта эпоха?
Время Unix – это система, которую компьютеры используют для измерения времени. Но как работает это время и что такое «эпоха Unix»?
Почему в Unix есть собственное понятие времени? Какая эпоха и в чем проблема Y2038?
Время Unix – это средство представления определенной даты и времени, используемое Linux, macOS и многими другими совместимыми системами. Он настолько распространен, что вы, вероятно, используете его, даже не подозревая об этом. Однако, как только вы поймете время Unix, вы заметите его во многих контекстах, а несколько предоставленных нами инструментов, могут помочь вам в работе со временем Unix.
Какова цель Unix Time?
Время Unix – это количество секунд, прошедших с фиксированной даты и времени. Это формат даты / времени (или отметки времени), который отличается от привычных нам удобочитаемых дат и времени. Это чисто из соображений эффективности. Для хранения одного числа, представляющего секунды, требуется намного меньше места, чем для хранения отдельных значений года, месяца, часа и т. д.
Конечно, говоря современным языком, разница в пространстве не так уж и велика. Но учтите, что Unix возник в конце 1960-х, когда доступное хранилище было намного меньше. Также часто используются временные метки, поэтому их хранилище увеличивается. Например, с каждым файлом связаны три метки времени.
Формат практически невозможно перевести в уме, если вы не гений математики. Но он по-прежнему имеет некоторые преимущества перед более читаемыми альтернативами, такими как среда, 21 октября 2015 г., 07:28:00 по Гринвичу. Вы можете легко и быстро заказать две метки времени Unix. Также обычно быстрее определить разницу между двумя отметками времени. Это особенно верно для дат, близких друг к другу, например, в соседние дни.
Об эпохе
Итак, время Unix – это общее количество секунд с определенного момента времени. Но что это за момент времени? Это 00:00:00 UTC на 1 января 1970 года. Это часто называют эпохой Unix. Программисты выбрали эту дату для эпохи из соображений удобства, поскольку это была ближайшая круглая дата, когда они изобрели время Unix.
Возможно, вы видели эту дату, когда что-то пошло не так. Это явно ошибка, но она выглядит очень странно, когда она приводит к дате до того времени, когда многие из нас родились! Впрочем, это вполне понятно, если знать о времени Unix. Если какая-либо система пытается отобразить метку времени, которая не имеет никакого значения, она часто преобразуется в 0 и приводит к точной дате эпохи.
Формат данных времени Unix
Собственно говоря, его нет. Исходный тип данных был 32-битным целым числом, и это часто остается так, даже в гораздо более мощных системах.
Этот тип данных позволяет значению хранить в общей сложности 2^32 (2 в 32-ой степени) секунды, что составляет чуть более 136 лет. Это значение обычно подписано, что означает, что оно может быть отрицательным или положительным. Таким образом, обычно это 68 лет по обе стороны от эпохи, то есть с 1902 по 2038 годы.
Конечно, это еще ограниченный период. Но в первую очередь формат временной метки использовался для таких понятий, как модификация файлов. Очень важно было представить время, близкое к настоящему, а не древнюю историю или далекое будущее. Даже для таких приложений, как календари, редко требуется представлять даты более чем на несколько десятилетий в будущем.
Но это не значит, что в этом ограниченном промежутке времени нет проблем…
Проблема 2038 года
Ошибка 2000 года, одна из худших ошибок программирования в истории, затронула компьютерные системы, которые хранят годы в виде двузначных значений. Когда наступил 2000 год, такие системы относились к нему так, как будто это был 1900 год. В действительности это было не так катастрофично, как предполагалось, главным образом потому, что многие люди заранее потратили много времени и усилий, готовясь к нему.
Если бы вы обратили внимание на предыдущий раздел, вы могли бы заметить аналогичную проблему, которая может повлиять на время Unix. Что ж, у Unix time есть собственная проблема с данными: проблема Y2k38. (Это часто называют проблемой, а не ошибкой; возможно, мы стали более оптимистичными с 2000 года!) Когда время Unix буквально истечет в 2038 году, системы будут рассматривать новые даты как 1902 или 1970.
По крайней мере, эта проблема нас не коснется ровно в полночь под Новый год. Последняя секунда 32-битного времени Unix приходится на 19 марта. В конечном итоге мы, скорее всего, модернизируем большинство систем к 2038 году, или к тому времени они все равно устареют.
Некоторые полезные ресурсы по меткам времени
Сайт Epoch Converter, возможно, является наиболее полным доступным конвертером временных меток. Он начинается с отображения текущего времени Unix – в реальном времени – и добавляет к этому почти все мыслимые функции. Его основное использование – для преобразования между отметками времени и датами, удобочитаемыми человеком, в обоих направлениях.
Dan’s Tools – это огромная коллекция полезных веб-приложений, одно из которых – конвертер временных меток, он более прост в использовании.
Time.is представляет еще один, еще более минималистичный вид. Он показывает время в нескольких форматах, включая время Unix. Он включает в себя текущее время в заголовке страницы, что полезно.
Использование Unix Time с инструментами командной строки
В Linux и macOS программа даты является основной утилитой для работы с датой и временем, включая временные метки Unix. Вызывается без каких-либо аргументов, возвращает текущую дату / время в удобочитаемом формате:
Если вам нужна текущая дата / время во времени Unix, используйте аргумент +% s :
Вы можете преобразовать дату, удобочитаемую человеком, в метку времени, используя флаг -d, если ваша версия даты поддерживает его. Большинство версий Linux по умолчанию должны:
В macOS дата – это другая программа, для которой требуется другой набор флагов:
Идя в другом направлении, вы можете преобразовать временную метку Unix, используя флаг -r:
Некоторые другие программы используют формат %s для работы со временем Unix. Например, если вы хотите показать дату изменения файла во времени Unix, с версией ls для Linux, вы можете использовать следующее:
Как использовать Unix Time в языках программирования
В PHP есть функция time(), которая возвращает текущую временную метку Unix. Его функция date() принимает метку времени в качестве второго аргумента:
JavaScript подходит к вещам интересным образом. У него есть метод Date.now() для получения количества миллисекунд с эпохи Unix. Конечно, вы можете разделить это на 1000 и округлить результат, чтобы получить эквивалентное время Unix в секундах:
Понимание времени Unix
Такие понятия, как эпоха и временные метки, являются важной частью начала работы с Linux. Время Unix – это простая концепция, которая возникает во многих местах. Как только вы это поймете, вы можете найти его весьма полезным, например, при вычислении разницы во времени. Вы также можете распознать, когда это может быть причиной определенных ошибок.
UNIX-время
UNIX-время (англ. Unix time ) или POSIX-время — система описания моментов во времени, принятая в UNIX и других POSIX-совместимых операционных системах. Определяется как количество секунд, прошедших с полуночи (00:00:00 UTC) 1 января 1970 года (четверг); время с этого момента называют «эрой UNIX» (англ. Unix Epoch ).
Время UNIX согласуется с UTC — в частности, при объявлении високосных секунд UTC соответствующие номера секунд повторяются, то есть високосные секунды не учитываются.
Представление времени в виде количества секунд удобно использовать для сравнения и хранения дат (дата и время в этом формате занимают всего 4 или 8 байтов). При необходимости обращения к элементам дат (день, месяц, год) секунды можно преобразовать в любой подходящий формат (и наоборот), но если такие преобразования выполняются часто, они снижают производительность.
В программах для хранения UNIX-времени используется целочисленный знаковый тип. Знаковость упрощает вычисление разницы в секундах между двумя моментами времени, которая может быть отрицательной. 32-битные числа со знаком могут ссылаться на моменты времени от 1901-12-13 20:45:52 до 2038-01-19 03:14:07 включительно.
«Юбилейные» значения
Время | Количество секунд |
---|---|
9 сентября 2001 года, 01:46:40 UTC | 1 000 000 000 (1 гигасекунда) |
10 января 2004 года, 13:37:04 UTC | 1 073 741 824=2 30 (1 гибисекунда) |
18 марта 2005 года, 01:58:31 UTC | 1 111 111 111 |
13 февраля 2009 года, 23:31:30 UTC | 1 234 567 890 |
Проблема 2038
См. также
Полезное
Смотреть что такое «UNIX-время» в других словарях:
Время (UNIX) — Эта статья о формате кодирования времени; об утилите см.: time (Unix). UNIX время или POSIX время (англ. Unix time) способ кодирования времени, принятый в POSIX совместимых операционных системах. Моментом начала отсчёта считается полночь (по… … Википедия
Время UNIX — Эта статья о формате кодирования времени; об утилите см.: time (Unix). UNIX время или POSIX время (англ. Unix time) способ кодирования времени, принятый в POSIX совместимых операционных системах. Моментом начала отсчёта считается полночь (по… … Википедия
Unix time — Эта статья о формате кодирования времени; об утилите см.: time (Unix). UNIX время или POSIX время (англ. Unix time) способ кодирования времени, принятый в POSIX совместимых операционных системах. Моментом начала отсчёта считается полночь (по… … Википедия
UNIX time — Эта статья о формате кодирования времени; об утилите см.: time (Unix). UNIX время или POSIX время (англ. Unix time) способ кодирования времени, принятый в POSIX совместимых операционных системах. Моментом начала отсчёта считается полночь (по… … Википедия
UNIX timestamp — Эта статья о формате кодирования времени; об утилите см.: time (Unix). UNIX время или POSIX время (англ. Unix time) способ кодирования времени, принятый в POSIX совместимых операционных системах. Моментом начала отсчёта считается полночь (по… … Википедия
Unix timestamp — Эта статья о формате кодирования времени; об утилите см.: time (Unix). UNIX время или POSIX время (англ. Unix time) способ кодирования времени, принятый в POSIX совместимых операционных системах. Моментом начала отсчёта считается полночь (по… … Википедия
Время (ЮНИКС) — Эта статья о формате кодирования времени; об утилите см.: time (Unix). UNIX время или POSIX время (англ. Unix time) способ кодирования времени, принятый в POSIX совместимых операционных системах. Моментом начала отсчёта считается полночь (по… … Википедия
Время (Юникс) — Эта статья о формате кодирования времени; об утилите см.: time (Unix). UNIX время или POSIX время (англ. Unix time) способ кодирования времени, принятый в POSIX совместимых операционных системах. Моментом начала отсчёта считается полночь (по… … Википедия
Время POSIX — Эта статья о формате кодирования времени; об утилите см.: time (Unix). UNIX время или POSIX время (англ. Unix time) способ кодирования времени, принятый в POSIX совместимых операционных системах. Моментом начала отсчёта считается полночь (по… … Википедия
Время (значения) — Текущее время: 14:37 UTC. Время: В Викисловаре есть статья «время» Время одно из основных понятий физики и философии … Википедия
Заблуждения программистов о Unix-времени
Вчера Дэнни поинтересовался любопытными фактами о Unix-времени, а я вспомнил, что иногда оно работает совершенно неинтуитивно.
Вот эти три факта кажутся в высшей степени разумными и логичными, не так ли?
Настольные часы 1770-х годов. Собрано Джоном Леру. Из коллекции Wellcome. Опубликовано под лицензией CC BY
У всех трёх заблуждений одна причина: високосные секунды. Если вы не знакомы с дополнительными секундами, вот краткая справка:
Время UTC определяется двумя факторами:
Когда два времени выпадают из синхрона, в UTC добавляется или удаляется секунда, чтобы вернуть синхронизацию. С 1972 года служба IERS (которая управляет этим делом) добавила 27 дополнительных секунд. В результате получилось 27 суток UTC продолжительностью в 86 401 секунду. Теоретически возможно появление суток продолжительностью 86 399 секунд (минус одна). Оба варианта противоречат фундаментальному предположению о Unix-времени.
Время Unix предполагает, что каждый день длится ровно 86 400 секунд (60 × 60 × 24 = 86 400), без всяких дополнительных секунд. Если происходит такой скачок, то время Unix либо перепрыгивает через секунду, либо отсчитывая две секунды за одну. По состоянию на 2019 год в нём отсутствует 27 високосных секунд.
Так что наши заблуждения нужно дополнить следующим образом:
До сих пор на практике секунды никогда не удалялись (и замедление вращения Земли означает, что это маловероятно), но если бы это когда-либо произошло, это означало бы, что день UTC стал на одну секунду короче. В этом случае последняя секунда UTC (23:59:59) отбрасывается.
В каждых сутках Unix одинаковое количество секунд, поэтому последняя Unix-секунда укороченного дня не будет соответствовать никакому времени UTC. Вот как это выглядит, в интервалах по четверти секунды:
Это уже 27 раз произошло на практике. По окончании суток UTC добавляют дополнительную секунду 23:59:60. В сутках Unix одинаковое количество секунд, поэтому он не может добавить дополнительную секунду — вместо этого приходится повторять метки времени Unix для последней секунды. Вот как это выглядит, в интервалах по четверти секунды:
Если стартовать в 23:59:60.50 и подождать полсекунды, время Unix возвращается на полсекунды, а метка времени Unix 101 соответствует двум секундам UTC.
Вероятно, это не единственные странности времени Unix — только то, что я вчера вспомнил.
Unix time
UNIX-время или POSIX-время (англ. Unix time ) — способ кодирования времени, принятый в POSIX-совместимых операционных системах.
Моментом начала отсчёта считается полночь (по UTC) с 31 декабря 1969 года на 1 января 1970, время с этого момента называют «эрой UNIX» (англ. Unix Epoch ).
Время UNIX согласуется с UTC, в частности, при объявлении високосных секунд UTC соответствующие номера секунд повторяются.
Способ хранения времени в виде количества секунд очень удобно использовать при сравнении дат (с точностью до секунды), а также для хранения дат: при необходимости их можно преобразовать в любой удобочитаемый формат. Дата и время в этом формате также занимают очень мало места (4 или 8 байтов, в зависимости от размера машинного слова), поэтому его разумно использовать для хранения больших объёмов дат. Недостатки в производительности могут проявиться при очень частом обращении к элементам даты, вроде номера месяца и т. п. Но в большинстве случаев эффективнее хранить время в виде одной величины, а не набора полей.
13 февраля 2009 года в 23:31:30 по UTC (02:31:30 14 февраля по MSK) значение UNIX-времени достигло 1234567890 секунд.
См. также
Ссылки
Полезное
Смотреть что такое «Unix time» в других словарях:
Unix time — Unix time, or POSIX time, is a system for describing points in time, defined as the number of seconds elapsed since midnight Coordinated Universal Time (UTC) of January 1 1970, not counting leap seconds. It is widely used not only on Unix like… … Wikipedia
UNIX time — Эта статья о формате кодирования времени; об утилите см.: time (Unix). UNIX время или POSIX время (англ. Unix time) способ кодирования времени, принятый в POSIX совместимых операционных системах. Моментом начала отсчёта считается полночь (по… … Википедия
Unix — (officially trademarked as UNIX, sometimes also written as Unix with small caps) is a computer operating system originally developed in 1969 by a group of AT T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Douglas McIlroy, and… … Wikipedia
UNIX — Ken Thompson und Dennis Ritchie Basisdaten Entwickler … Deutsch Wikipedia
Unix — Kommandozeile (Unix Prompt) Basisdaten Entwickler Ken Thompso … Deutsch Wikipedia
UNIX version 6 — UNIX version 6, appelé en anglais Sixth Edition Unix, Version 6 Unix ou Unix time sharing system 6, fut la première version du système d exploitation UNIX à être largement répandue en dehors des laboratoires Bell où elle fut conçue. Elle sortit… … Wikipédia en Français
Time (Unix) — time is a command in the Unix operating systems. It is used to determine the duration of execution of a particular command.UsageTo use the command, simply precede any command by the word time, such as:time lsWhen the command completes, time will… … Wikipedia
Unix — (registrado oficialmente como UNIX®) es un sistema operativo portable, multitarea y multiusuario; desarrollado, en principio, en 1969 por un grupo de empleados de los laboratorios Bell de AT T, entre los que figuran Ken Thompson, Dennis Ritchie y … Wikipedia Español
Time t — The time t datatype is a data type in the ISO C library defined for storing system time values. Such values are returned from the standard time() library function. This type is a typedef defined in the standard lt;time.h gt; header. ISO C defines … Wikipedia
UNIX-Derivat — Grobe Übersicht über die Entwicklung und Abstammung der größten Unix Derivate 1965 wurden im Rahmen der Fall Joint Computer Conference einige Aufsätze[1] über ein neu zu erstellendes Betriebssystem namens Multics veröffentlicht. Hinter Multics… … Deutsch Wikipedia