Время utc 0. Что такое UTC или время по Гринвичу

В основу современной системы часовых поясов положено универсальное координированное время UTC (всемирное время), от которого зависит время всех часовых поясов.

Местное время во многих странах Северного полушария (но не во всех) летом увеличивается на 1 час (в Южном полушарии одновременно уменьшается на 1 час), а зимой возвращается к нормальному, поясному времени, которое нередко также изменяется. В связи с этими сезонными и несезонными изменениями местного времени в радиовещании, на международном транспорте, в радиосвязи, в электронной почте и других международных средствах общения происходит огромная путаница по стыковке во времени между разными странами.

Время по UTC не переводится зимой и летом, поэтому для тех мест, где есть перевод на летнее время, смещение относительно UTC меняется.

Начальный (нулевой) меридиан - Гринвичский меридиан с географической долготой равной 0°00"00", делит земной шар на западное и восточное полушария. Проходит через бывшую Гринвискую обсерваторию (в пригороде Лондона)

GMT (Greenwich Mean Time) - "время по Гринвичу" – на меридиане Гринвича. Определяется по астрономическим наблюдениям суточного движения звезд. Оно нестабильно (в пределах секунды в год) и зависит от постоянного изменения скорости вращения Земли, перемещения географических полюсов по её поверхности и нутации оси вращения планеты. Гринвичское (астрономическое) время - GMT близко по значению к UTC (атомному времени), и пока ещё будет употребляться в качестве его синонима . Ещё название - "ZULU time"

В русскоязычной метеорологии GMT обозначают как СГВ (Среднее Гринвичское /или Географическое/ Время)

В отличие от времени по Гринвичу, шкала UTC устанавливается по атомным часам. Шкала времени UTC введена с 1964 года для согласования значений UT1 (астрономические измерения) и TAI (атомные часы).

С 1900 г средний солнечный день увеличился на 0,002 атомные секунды, и, стало быть, Гринвичское среднее время расходится с международным атомным временем приблизительно на 1 сек за каждые 500 суток. Беря во внимание этот прогрессирующий фазовый сдвиг между двумя шкалами времени и не отказываясь от высокой точности, предлагаемой атомными часами, в 1972 г был найден компромисс, который привел к определению понятия Универсального Координированного Времени (UTC), которое сейчас используется как официальная мера времени в мире. По сути время UTC течет как международное атомное время, а когда разница с Гринвичским временем достигает 1 секунды, к шкале UTC добавляется 1 секунда, которая называется прыгающей (leap second). Таким образом, разница все время поддерживается меньшей, чем 0,9 сек. Про добавление прыгающей секунды сообщается Международной Службой Вращения Земли (IERS), которая непрерывно контролирует скорость вращения. Наилучшими датами для добавления прыгающей секунды являются 30 июня и 31 декабря. Кстати, термин UTC тоже является компромиссом между английским CUT (Coordinated Universal Time) и французским TUC (Temps Universel Coordlnaire).

Всемирное координированное время UTC, всегда остается независимым ориентиром для всего мира и из которого, зная разницу между своим поясным временем, вы всегда сможете вычислить ваше местное время.

Сигналы точного времени передаются по радио, телевидению, интернету – в системе UTC.

Поясное время – система счёта часового времени, основанная на разделении поверхности Земли на 24 часовых пояса, через 15° по долготе. Время в пределах одного часового пояса считается одинаковым. В 1884 году, на Международной конференции было принято решение о применении этой системы. В соответствии с международным соглашением 1883 года, начальным («нулевым») меридианом считается тот, который проходит через Гринвичскую обсерваторию в пригороде Лондона. Местное гринвичское время (GMT), условились называть всемирным или «Мировым временем» UTC/GMT/Z.

На территории России, с 28 марта 2010 года – 9 часовых поясов (до этого было 11 тайм-зон). Самарская область и Удмуртия перешли на Московское время (второй часовой пояс). Кемеровская обл. (Кузбасс) – на Омское (MCK+3). Камчатский край и Чукотка – на Магаданское (МСК+8). В этих пяти субъектах Федерации, 28 марта 2010 – часовые стрелки не переводили.

Упраздняются два пояса – третий (Самарский, МСК+1) и одиннадцатый (Камчатский, МСК+9). Всего их становится 9, и максимальный разброс по времени в нашей стране сокращается с 10 до 9 часов.

В России, с марта 2011 года, после перехода на летнее время, стрелки часов больше не будут переводиться.

Часовой пояс Москвы, по стабильному времени: +4 (UTC/GMT + 4:00)

UTC (coordinated universal time) — это всемирный стандарт для определения времени и даты. Прежде он был известен как Гринвичское среднее время (GMT). Другие сокращения, относящиеся к этому стандарту — «universal time» и «world time.»
Для чего нужно время по UTC?

UTC используется международными коротковолновыми вещателями в их частотных расписаниях и программных планах. Радиолюбители-эфирщики, слушатели-коротковолнивики, военные, и сервисные радиослужбы также широко используют UTC. Гринвичское среднее время было основано на времени на нулевом меридиане, который проходит через Гринвич (Англия). GMT стал мировым временем и стандартом даты, потому что он использовался Британским королевским морским и торговым флотом в течение девятнадцатого столетия. Сегодня по UTC работают прецизионные атомные часы, коротковолновые сигналы времени и спутники, чтобы гарантировать надежность и точность стандарта для научных и навигационных целей. Несмотря на уточнения в точности, стандарт UTC использует те же принципы, что и в GMT.
Какую часовую систему использует UTC?

UTC использует 24-часовую систему системы обозначения времени. «1:00 AM» в UTC выражается как 0100 и объявляется «zero one hundred». Пятнадцать минут второго выражаются как 0115; тридцать восемь минут второго — 0138 (обычно произносится «zero one thirty-eight»). Следующая минута после 0159 — 0200. Следующая минута после 1259 — 1300 (произносится «thirteen hundred»). Это продолжается до 2359. Следующая минута — 0000 («zero hundred») — начало новых суток.
Какая главная ошибка при пересчете времени?

Главный источник замешательства при использовании UTC — то, что дата также изменяется в соответствии с UTC. Например, QSO, проведенное в пятницу в 23:00 UTC в Москве вы запишете в субботу в 3:00 московского времени. И обратно, если вы провели QSO в Москве в понедельник 3:00 м.в., в журнале следует указывать «Воскресенье, 23:00 UTC.

Что такое Unix время или Unix эпоха (Unix epoch или Unix time или POSIX time или Unix timestamp) ?

UNIX-время или POSIX-время (англ. Unix time) - способ кодирования времени, принятый в UNIX и других POSIX-совместимых операционных системах.
Моментом начала отсчёта считается полночь (по UTC) с 31 декабря 1969 года на 1 января 1970, время с этого момента называют "эрой UNIX" (англ. Unix Epoch).
Время UNIX согласуется с UTC, в частности, при объявлении високосных секунд UTC соответствующие номера секунд повторяются.
Способ хранения времени в виде количества секунд очень удобно использовать при сравнении дат (с точностью до секунды), а также для хранения дат: при необходимости их можно преобразовать в любой удобочитаемый формат. Дата и время в этом формате также занимают очень мало места (4 или 8 байтов, в зависимости от размера машинного слова), поэтому его разумно использовать для хранения больших объёмов дат. Недостатки в производительности могут проявиться при очень частом обращении к элементам даты, вроде номера месяца и т. п. Но в большинстве случаев эффективнее хранить время в виде одной величины, а не набора полей.

Конвертивание эпохи Unix в человекопонятную дату(human readable date)


Месяц День Год Часы Мин Сек
/ / : : GMT


Форматированная дата в фомате RFC 2822

Unix дата начала и конца года, месяца или дня

Показать начало и конец год месяц день
Мес День Год
/ /


Перевод секунд в дни, часы и минуты


Как получить Unix время в...

Perl time
PHP time()
Ruby Time.now (или Time.new). Чтобы вывести: Time.now.to_i
Python import time сначала, потом time.time()
Java long epoch = System.currentTimeMillis()/1000;
Microsoft .NET C# epoch = (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000;
VBScript/ASP DateDiff("s", "01/01/1970 00:00:00", Now())
Erlang calendar:datetime_to_gregorian_seconds(calendar:now_to_universal_time(now()))-719528*24*3600.
MySQL SELECT unix_timestamp(now())
PostgreSQL SELECT extract(epoch FROM now());
SQL Server SELECT DATEDIFF(s, "1970-01-01 00:00:00", GETUTCDATE())
JavaScript Math.round(new Date().getTime()/1000.0) getTime() возвращает время в миллисекундах.
Unix/Linux date +%s
Другие OS Командная строка: perl -e "print time" (Если Perl установлен на вашей системе)

Конвертирование даты в Unix время в...

PHP mktime(часы , минуты , секунды , месяц , день , год )
Ruby Time.local(год , месяц , день , часы , минуты , секунды , usec ) (или Time.gm для GMT/UTC вывода). Чтобы вывести добавьте.to_i
Python import time сначала, потом int(time.mktime(time.strptime("2000-01-01 12:34:00", "%Y-%m-%d %H:%M:%S")))
Java long epoch = new java.text.SimpleDateFormat ("dd/MM/yyyy HH:mm:ss").parse("01/01/1970 01:00:00");
VBScript/ASP DateDiff("s", "01/01/1970 00:00:00", поле даты )
MySQL SELECT unix_timestamp(время ) Формат времени: YYYY-MM-DD HH:MM:SS или YYMMDD или YYYYMMDD
PostgreSQL SELECT extract(epoch FROM date("2000-01-01 12:34"));
С timestamp: SELECT EXTRACT(EPOCH FROM TIMESTAMP WITH TIME ZONE "2001-02-16 20:38:40-08"); C интервалом: SELECT EXTRACT(EPOCH FROM INTERVAL "5 days 3 hours");
SQL Server SELECT DATEDIFF(s, "1970-01-01 00:00:00", поле с датой )
Unix/Linux date +%s -d"Jan 1, 1980 00:00:01"

Конвертирование Unix времеми в понятную дату(human readable date)...

PHP date(Формат , unix время );
Ruby Time.at(unix время )
Python import time сначала, потом time.strftime("%a, %d %b %Y %H:%M:%S +0000", time.localtime(unix время )) Замените time.localtime на time.gmtime для GMT даты.
Java String date = new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(new java.util.Date (unix время *1000));
VBScript/ASP DateAdd("s", unix время , "01/01/1970 00:00:00")
PostgreSQL SELECT TIMESTAMP WITH TIME ZONE "epoch" + unix время * INTERVAL "1 second";
MySQL from_unixtime(unix время , не обязательно, выходной формат ) Стандартный формат выхода YYY-MM-DD HH:MM:SS
SQL Server DATEADD(s, unix время , "1970-01-01 00:00:00")
Microsoft Excel =(A1 / 86400) + 25569 Результат будет в GMT зоне времени. Для других временных зон: =((A1 +/- разница аремени для зоны) / 86400) + 25569.
Linux date -d @1190000000
Другие OS Командная строка: perl -e "print scalar(localtime(unix время ))" (Если установлен Perl) Замените "localtime" на "gmtime" для GMT/UTC зоны времени.

Для чего нужен инструмент "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

Пару слов о терминах.

Итак, 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 конвертер" такая конвертация займет у вас доли секунды.

  • UTC : время на нулевом меридиане называется Всемирное координированное время, Universal Coordinated Time. Несовпадение акронима было вызвано необходимостью универсальности его для всех языков.
  • GMT : ранее вместо UTC использовалось среднее время по Гринвичу (Greenwich Mean Time, GMT), так как нулевой меридиан был выбран так, чтобы проходить через Гринвичскую королевскую обсерваторию.
  • Прочие часовые пояса могут быть записаны как смещение от UTC. Например, Австралийское восточное стандартное время (EST) записывается как UTC+1000, то есть время 10:00 по UTC есть 20:00 по EST того же дня.
  • Летнее время не влияет на UTC. Это всего лишь политическое решение смены часового пояса (смещения от UTC). Например, GMT всё ещё используется: это британское национальное время зимой. Летом оно становится BST.
  • Високосные секунды : по международному соглашению, UTC держится в не более чем 0,9 секунды от физической реальности (UT1, которое измеряется по солнечному времени) путём введения «високосной секунды» в конце последней минуты года по UTC или последней минуты июня.
  • Високосные секунды не обязаны объявляться (астрономами) более чем за 6 месяцев до их введения. Это представляет собой проблему, если вам требуется какое-либо планирование с секундной точностью на протяжении более 6 месяцев.
  • Время Unix : измеряется количеством секунд, прошедших с «эпохи» (начало 1970 года по UTC). На время Unix не оказывают влияния часовые пояса или летнее время.
  • Согласно стандарту POSIX.1, для времени Unix предполагается обрабатывать високосную секунды путём повторения предыдущей секунды, например: 59.00 59.25 59.50 59.75 59.00 ← повтор 59.25 59.50 59.75 00.00 ← инкремент 00.25 Это компромисс: вы не можете как-либо выразить високосную секунду в ваших системных часах и ваше время гарантированно пойдёт в обратную сторону. С другой стороны, каждый день равен в точности 86 400 секундам, и вам не понадобится таблица всех прошлых и будущих високосных секунд для того, чтобы перевести Unix-время в удобную для человека форму часы-минуты-секунды.
  • Предполагается, что ntpd произведёт повтор после того, как получит «високосные биты» от вышестоящих серверов времени, но я также видел и то, как он не делает ничего: система переходит на одну секунуду в будущее, затем медленно сползает обратное на правильное время.

Что должен знать о времени каждый программист

  • Часовые пояса относятся к уровню презентации
    Большинство вашего кода не должно заниматься часовыми поясами или местным временем, оно должно передавать Unix-время как оно есть.
  • Когда измеряете время, измеряйте Unix-время. Это UTC. Его просто получить (системными функциями). Оно не имеет часовых поясов или летнего времени (и високосных секунд).
  • Когда храните время, храните Unix-время. Это одно число.
  • Если вы хотите сохранить время, пригодное для чтения человеком (например, в логах), постарайтесь сохранить его вместе с Unix-временем, а не вместо .
  • Когда отображаете время, всегда включайте в него смещение часового пояса. Формат времени без смещения бесполезен.
  • Системные часы не точны.
  • Вы в сети? Системные часы каждой другой машины не точны по-разному.
  • Системные часы могут, и будут, перепрыгивать вперёд и назад во времени из-за вещей, которые вне вашего контроля. Ваша программа должна быть разработана таким образом, чтобы пережить это.
  • Отношение количества секунд системных часов к количеству настоящих секунд - не точно и может меняться. В основном это зависит от температуры.
  • Не используйте слепо gettimeofday() . Если вам нужны монотонные (постоянно увеличивающиеся) часы, посмотрите на clock_gettime() . [Вариант для Java: вместо System.currentTimeMillis() используйте System.nanoTime() ]
  • ntpd может изменять системное время двумя способами:
    • Шаг: часы перескакивают вперёд или назад к правильному времени немедленно
    • Подкручивание: изменение частоты системных часов так, чтобы они медленно сдвигались в сторону правильного времени.
    Подкручивание более предпочтительно, потому что оно менее разрушительно, но полезно только для корректировки небольшой разницы.

Специальные случаи

  • Время проходит со скоростью одну секунду за секунду для всех наблюдателей. Частота удалённых часов по отношению к наблюдателю зависит от скорости и гравитации. Часы внутри спутников GPS регулируются для преодоления эффектов относительности.
  • MySQL хранит столбцы типа DATETIME в виде упакованных в числа значений «YYYYMMDD HHMMSS» Если вы озаботились хранением отметок времени, храните их как целое число и используйте для преобразования функции UNIX_TIMESTAMP() и FROM_UNIXTIME().