Инструменты разработчика · Конвертер временных меток Unix
UTC, GMT и TAI: какая из них на самом деле считается вашей меткой времени
· Фон
временные метки Unix-время часовые пояса
GMT, UTC и TAI часто рассматриваются как синонимы, но это три разные вещи с разной историей. В этом посте объясняется каждый из них и какие из них на самом деле используются в Unix-конвертерах времени и повседневной жизни.
Три имени на одном сервере — GMT в заголовке Date, UTC в журналах и TAI в исследовательской работе, и все за одну и ту же секунду.
Сервер может отображать «GMT» в одном протоколе, «UTC» в журналах и другую шкалу времени в научных данных. Подобные метки часов не обеспечивают взаимозаменяемости. Первая задача — определить контракт каждого поля, а не переименовывать все UTC на уровне представления.
Контракт ToolAcre очевиден: секунды или миллисекунды Unix становятся строкой ISO 8601 UTC, читаемой строкой UTC и локальной строкой браузера. У него нет переключателя масштаба. Любой счетчик, отличный от Unix, должен быть преобразован с использованием собственного авторитетного определения, прежде чем этот маршрут станет актуальным.
Полезная инвентаризация записывает масштаб и сериализацию для каждого поля. Подобные ярлыки не должны стирать происхождение, особенно когда данные пересекают научные и прикладные системы.
Среднее время по Гринвичу - среднее солнечное время на меридиане, его история как мирового эталона и почему теперь это часовой пояс, а не стандарт.
В плане представлена история среднего времени по Гринвичу и современное юридическое использование. Эти факты отсутствуют в конфигурации преобразователя, исходном коде или тестах. Таким образом, эта статья не превращает хранилище кода в историческую цитату путем умозаключения.
С функциональной точки зрения, если на входе указано GMT, проверьте определяющий протокол. Метка часов, которая выглядит эквивалентной обычным датам подачи заявок, все же может содержать определенные грамматические или политические требования. ToolAcre выводит метки UTC и не должен быть представлен как синтаксический анализатор или форматтер GMT.
Если совместимость зависит от термина, свяжите управляющую спецификацию при проверке кода. Метка дисплея никогда не должна молча заменять требования к проводному формату.
История и юридический статус GMT находятся за пределами хранилища.
Строка UTC создается `Intl.DateTimeFormat` с `timeZone: "UTC"`; строка ISO взята из `toISOString()`. Эти вызовы доказывают, что этот интерфейс обозначает свое универсальное чтение. Они не документируют момент принятия UTC или институциональный механизм, стоящий за ним.
Для отладки метки достаточно, чтобы установить общую ссылку, независимую от текущей локальной зоны. Сравните строки ISO или значения эпох между системами. Если источник использует другую шкалу, сначала докажите взаимосвязь, а не предполагайте, что знакомая дата означает идентичный подсчет.
Канонический вывод UTC особенно полезен для сравнения сред, поскольку он удаляет выбор локальной зоны. Однако он не преобразует входные данные из необъявленной шкалы времени.
Преобразователь маркирует UTC, но не документирует историю определения UTC.
Международное атомное время не представлено в коде, конфигурации или тестах. Здесь не отображается текущее смещение, исторический разрыв или алгоритм преобразования. Предоставление такой константы из памяти было бы именно тем тонким требованием времени, которое задача запрещает.
Сохраните значение с меткой TAI как TAI до тех пор, пока авторитетная библиотека или источник не выполнит преобразование для его даты. Вставка его напрямую в виде секунд Unix автоматически применяет неправильное начало координат или масштаб и все равно может дать отполированную строку ISO. Читабельность — это не проверка.
Внешнее преобразование должно включать имя шкалы в имена переменных и типов. Удаление этой метки перед арифметическими действиями делает невозможным проверку более позднего правдоподобного результата ISO.
TAI не реализован, поэтому не утверждается пропуск или константа преобразования.
Тестируемая модель Unix переходит от значения эпохи 1,483,228,799 в `2016-12-31T23:59:59Z` к 1,483,228,800 в полночь. У него нет отдельного ввода для `23:59:60`. В этом конкретное значение поведения в стиле POSIX в этой реализации.
Разумно сказать, что преобразователь отображает Unix, согласно этому правилу, рассчитывает на гражданскую продукцию с меткой UTC. Было бы ошибочно называть это целое число точным отсчетом атомных секунд в каждом историческом скачке. Инструмент производит программную дату, а не лабораторные измерения по шкале времени.
Различие тонкое, но практичное: вычисления последовательности наследуют соглашение Unix, а отображение в Civil Display наследует форматирование Date и Intl. Ни один из путей не предоставляет метаданные атомного времени.
Протестированная модель Unix отображает секунды в стиле POSIX в метки UTC без значения дополнительной секунды.
Примеры книги HTTP и британского юридического времени требуют внешнего протокола и юридических источников. Они опущены. При реализации заголовка или регламентированной записи следуйте фактической спецификации, а не выбирайте формулировку UTC или GMT на основе разговорной эквивалентности.
В этом модуле `GMT` может появиться как часть рендеринга Intl с коротким смещением для нулевого смещения, но это вывод форматтера, а не обещание сгенерировать дату протокола. Держите отображение пользовательского интерфейса отдельно от сериализации в проводном формате и юридической терминологии.
Средство форматирования, возвращающее метку с нулевым смещением, не является достаточной проверкой протокола. Протестируйте полный сериализованный заголовок или регламентированную запись с помощью специального анализатора и приспособлений.
Протокольное и законное использование GMT требует внешних источников и опущено.
GPS шкалы времени и астрономических дат выходят за рамки принятых режимов. Пользовательский интерфейс предлагает только секунды, миллисекунды или автоматическое определение, и обе поддерживаемые единицы предполагают эпоху Unix. Не существует флажка, изменяющего начало координат или соглашение о переходе.
Число из другой шкалы должно нести метку при проглатывании и хранении. Преобразуйте с помощью специально созданного метода с исходным кодом и сохраните оригинал. На этой панели находится только производное значение Unix; в противном случае правдоподобный результат может скрыть фундаментальное несоответствие.
Отклонить неподдерживаемый масштаб безопаснее, чем предложить угаданную константу. Смещения шкалы времени могут быть чувствительны к дате, и ложная точность здесь может изменить порядок научных наблюдений.
Режимы GPS и астрономические масштабы не принимаются.
Произнесите UTC при обращении к универсальной строке ToolAcre, потому что это то, что запрашивает источник и помечает пользовательский интерфейс. Произнесите Unix-секунды или миллисекунды для числового ввода. Избегайте общих утверждений, которые объединяют UTC, GMT и атомарное время в синонимы.
Точность в именовании — это инструмент отладки. Он определяет, какие преобразования необходимы, а какие утверждения остаются непроверенными. Этот преобразователь предоставляет убедительные доказательства существования одного пути — счетчик Unix до отображения UTC/local — и намеренно не предлагает ни одного пути для несвязанных масштабов.
При написании документации прикрепляйте каждый термин к конкретному полю или средству форматирования. Vague утверждает, что все три «означают одно и то же время», скрывая точную ответственность за обращение.