Открыть сервис

Метка времени

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

История

Потребность в фиксации времени возникла одновременно с появлением письменности и государственного учёта. В Древнем Риме для обозначения года правления консулов использовались списки (фасты), а в средневековых хрониках — указания на церковные праздники. Однако современное понятие метки времени как цифрового объекта сформировалось в XX веке с развитием компьютерных систем.

Первые программные реализации меток времени появились в операционных системах 1960-х годов. В Unix-подобных системах (начиная с версии 1, 1971 год) время представлялось как количество секунд, прошедших с 1 января 1970 года 00:00:00 UTC (так называемая эпоха Unix). Этот формат, названный Unix time, стал де-факто стандартом для многих систем. В 1980-х годах с развитием баз данных и сетей возникла необходимость в едином представлении времени для обмена данными, что привело к появлению международных стандартов (ISO 8601, 1988 год).

Форматы представления

Метки времени могут быть представлены в различных форматах, от человекочитаемых строк до машинных кодов. Выбор формата зависит от области применения, требований к точности и совместимости.

Человекочитаемые форматы

Наиболее распространённый формат — по стандарту ISO 8601: YYYY-MM-DDThh:mm:ss±hh:mm. Пример: 2025-04-10T14:30:00+03:00 (10 апреля 2025 года, 14:30:00 по московскому времени). Этот формат однозначен, не зависит от локали и широко применяется в веб-технологиях, базах данных и обмене данными (JSON, XML).

В России и странах бывшего СССР часто используется формат ДД.ММ.ГГГГ ЧЧ:ММ:СС (например, 10.04.2025 14:30:00). В США распространён формат MM/DD/YYYY hh:mm:ss AM/PM.

Машинные форматы

  • Unix time (POSIX time): целое число секунд с 1 января 1970 года 00:00:00 UTC. Пример: 1744281000 (для 10 апреля 2025 года 14:30:00 UTC). Не учитывает високосные секунды, что может приводить к расхождениям на несколько секунд.
  • Windows FILETIME: 64-битное целое число 100-наносекундных интервалов с 1 января 1601 года 00:00:00 UTC (дата начала григорианского календаря в Windows).
  • NTP timestamp: 64-битное число (32 бита — секунды, 32 бита — дробная часть) с 1 января 1900 года 00:00:00 UTC. Используется в протоколе сетевого времени (NTP).
  • DB2 timestamp: внутреннее представление в системах управления базами данных (например, 7-байтовое число в IBM DB2).

Специализированные форматы

  • GPS time: количество секунд с 6 января 1980 года 00:00:00 UTC (начало эпохи GPS). Отличается от UTC на целое число секунд (из-за високосных секунд).
  • TAI (Международное атомное время): непрерывная шкала времени, не учитывающая високосные секунды. Используется в научных и технических приложениях.
  • RFC 3339: профиль ISO 8601 для интернет-протоколов, часто применяется в REST API и форматах данных (например, в JSON).

Применение

Метки времени используются в самых разных областях, где требуется фиксация момента события или синхронизация процессов.

Информационные технологии

  • Файловые системы: каждая операция с файлом (создание, изменение, чтение) сопровождается меткой времени. В Unix-подобных системах различают mtime (время модификации содержимого), ctime (время изменения метаданных) и atime (время последнего доступа).
  • Базы данных: каждая запись может содержать метку времени создания или обновления (created_at, updated_at). Это используется для аудита, версионирования и синхронизации.
  • Логирование: все события в системе (ошибки, предупреждения, действия пользователей) записываются с меткой времени для последующего анализа.
  • Сетевые протоколы: в протоколах TCP/IP, HTTP, SMTP метки времени используются для контроля задержек, тайм-аутов и последовательности пакетов.
  • Криптография и блокчейн: метки времени используются для подтверждения существования данных на определённый момент (например, в технологии блокчейн — временные метки в блоках). Существуют службы доверенной временной метки (Trusted Timestamping), которые заверяют время подписью сертифицированного центра.

Промышленность и транспорт

  • Системы управления: в SCADA-системах метки времени фиксируют моменты срабатывания датчиков, команд управления и аварийных сигналов.
  • Логистика: в системах отслеживания грузов (например, GPS-трекеры) каждая точка маршрута сопровождается меткой времени.
  • Авиация и железные дороги: расписания, диспетчерские журналы и системы безопасности используют точные метки времени для координации движения.

Наука и техника

  • Астрономия: метки времени используются для фиксации моментов наблюдений, координат небесных тел и событий (например, вспышек сверхновых).
  • Физика высоких энергий: в экспериментах на коллайдерах (например, Большой адронный коллайдер) метки времени с точностью до наносекунд позволяют сопоставлять данные с разных детекторов.
  • Геодезия и навигация: в системах GPS и ГЛОНАСС метки времени являются основой для определения координат (псевдодальномерный метод).

Финансы и право

  • Банковские операции: каждая транзакция (перевод, платёж, выписка) содержит метку времени для учёта и разрешения споров.
  • Электронный документооборот: метки времени используются для подтверждения момента подписания документов электронной подписью. В России это регулируется Федеральным законом № 63-ФЗ «Об электронной подписи».
  • Судебная экспертиза: цифровые метки времени на файлах (например, фотографиях, видеозаписях) могут служить доказательством в суде.

Точность и синхронизация

Точность меток времени зависит от источника времени и способа синхронизации. В большинстве компьютерных систем используется системное время, которое может отличаться от реального из-за дрейфа кварцевых часов, сбоев или неправильной настройки.

Для обеспечения точности применяются протоколы синхронизации:

  • NTP (Network Time Protocol): обеспечивает точность до миллисекунд в локальных сетях и до десятков миллисекунд в глобальных. Использует иерархию серверов (страты).
  • PTP (Precision Time Protocol): обеспечивает точность до микросекунд и наносекунд в локальных сетях (IEEE 1588). Применяется в промышленности, телекоммуникациях и финансовых системах.
  • GPS/ГЛОНАСС: приёмники спутниковых сигналов могут предоставлять точное время с погрешностью менее 100 наносекунд. Используются в качестве эталонных источников для NTP-серверов.

В России для синхронизации времени в государственных информационных системах используется Государственная служба времени, частоты и определения параметров вращения Земли (ГСВЧ), которая поддерживает эталонные шкалы времени UTC(SU) (национальная реализация всемирного координированного времени).

Проблемы и ограничения

  • Високосные секунды: раз в несколько лет к шкале UTC добавляется или вычитается одна секунда для компенсации замедления вращения Земли. Это может вызывать сбои в системах, не поддерживающих коррекцию (например, в Unix time високосные секунды игнорируются).
  • Переход на летнее время: в странах, где используется сезонный перевод часов, метки времени могут быть неоднозначными (например, час осенью повторяется). В России переход на летнее время отменён с 2014 года.
  • Проблема 2038 года: в 32-битных системах, использующих Unix time, 19 января 2038 года значение секунд превысит максимальное 32-битное число (2 147 483 647), что приведёт к переполнению и сбросу времени на 13 декабря 1901 года. Для решения требуется переход на 64-битные системы.
  • Часовые пояса: при хранении меток времени без указания часового пояса возможна путаница. Рекомендуется хранить время в UTC и преобразовывать в локальное при отображении.

Интересные факты

  • Самая ранняя известная метка времени в компьютерной истории — 1 января 1970 года 00:00:00 UTC (эпоха Unix). Многие системы до сих пор используют её как точку отсчёта.
  • В операционной системе Windows используется другая эпоха — 1 января 1601 года (начало григорианского календаря, принятого в англоязычных странах).
  • В некоторых системах (например, в файловой системе FAT) метки времени имеют ограниченную точность — до 2 секунд (FAT32) или до 10 миллисекунд (NTFS).
  • В научных экспериментах, например в ЦЕРНе, используются метки времени с точностью до пикосекунд (10⁻¹² с) для синхронизации данных с детекторов.

Источники

  • ISO 8601:2004 «Data elements and interchange formats — Information interchange — Representation of dates and times».
  • RFC 3339 «Date and Time on the Internet: Timestamps».
  • RFC 5905 «Network Time Protocol Version 4: Protocol and Algorithms Specification».
  • IEEE 1588-2008 «Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems».
  • Федеральный закон от 06.04.2011 № 63-ФЗ «Об электронной подписи».
  • «UNIX Time» — The Open Group Base Specifications Issue 7, 2018 edition.
  • «Time in Physics» — Stanford Encyclopedia of Philosophy, 2021.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →