Инструменты разработчика · Конвертер временных меток Unix
Что означает Z: UTC, смещения и обозначения в метках времени ISO 8601
· Как это работает
временные метки iso-8601 часовые пояса
Конвертеры и API печатают мгновенные сообщения как строки ISO 8601, а конечный Z или смещение — это часть, которую люди пропускают. В этом посте подробно объясняется формат, чтобы вы могли правильно прочитать UTC и локальный вывод.
Две строки, одно мгновение — 10:00:00Z и 12:00:00+02:00 рядом, и читатель, который думает, что между ними два часа разницы.
`2025-02-03T10:00:00Z` и `2025-02-03T12:00:00+02:00` называют одно мгновение. Вторая строка показывает настенные часы на два часа вперед и указывает смещение, необходимое для вычитания этих часов. Чтение только поля часа создает вымышленный разрыв между одновременными событиями.
ToolAcre передает обе строки в Date и возвращает секунды эпохи, миллисекунды эпохи и каноническую строку UTC ISO. Равные числовые результаты являются решающим сравнением. Изменение циферблата не подразумевает изменение прошедшего времени, поскольку разницу объясняет указатель в конце.
Безопасная процедура сравнения заключается в том, чтобы сначала нормализовать каждую строку до миллисекунд эпохи. Если эти целые числа совпадают, очевидная разница в часах является представлением, а не затраченным временем.
Анатомия ISO 8601 date-time — дата, разделитель T, время, доли секунды и указатель зоны.
Сгенерированное инструментом значение ISO содержит календарную дату, `T`, поля час-минута-секунда, трехзначную дробь миллисекунды и завершающее `Z`. Именно эта форма взята из `toISOString()`. Обработка ввода шире, поскольку Date анализирует предоставленную строку, но в сообщении об ошибке рекомендуется явное значение, например `2024-03-01T09:30:00Z`.
Разделители делают части разборчивыми; указатель терминала делает момент определяющим. Фракции уточняют положение в течение секунды без изменения зоны. При сравнении вывода API сохраняйте окончательный указатель. Усечение снимка экрана перед удалением информации, необходимой для сопоставления часов с UTC.
Z для зулу — почему Z означает UTC, его происхождение связано с военными и авиационными часовыми поясами и почему это не то же самое, что отсутствие обозначения
В этой реализации `Z` определяется как явная зона, а `toISOString()` использует ее для UTC. Учетная запись военного происхождения рабочей книги не задокументирована в репозитории, поэтому в этой статье она не повторяется как история происхождения. Фактический факт более узкий и проверяемый: завершающий Z предотвращает предположение о местном времени.
Отсутствие указателя не является другим вариантом написания Z. ToolAcre устанавливает `assumedLocal` для даты и времени без Z или числового смещения, а затем сообщает пользователю, какая зона браузера предоставила интерпретацию. Замена отсутствующего суффикса на Z меняет предполагаемый момент времени, если исходные часы подразумевались как местные.
В этом конвертере Z обозначает форму UTC; его история именования находится за пределами хранилища
Суффикс, такой как `+02:00`, записывает разницу между записанными часами и UTC в этот момент. Он не идентифицирует город. Многие регионы могут использовать одно и то же смещение, а регион может использовать другое смещение на другую дату. Строка сохраняет прочтение, а не политические правила, которые его создали.
Это ограничение имеет значение в повторяющихся расписаниях. API может точно сообщить о прошедшем моменте с помощью `+02:00`, но сам по себе суффикс не может вычислить встречу 09:00 следующей зимой. Для преобразования эпохи требуется только указанное смещение; для будущего планирования времени у стены требуется именованная зона и логика, учитывающая правила, за пределами этой панели.
Рабочий пример: одна эпоха, два показания — значение UTC и локальное значение, которое показывает преобразователь, и подтверждение того, что они называют один и тот же момент.
Используйте эпоху 1,738,577,600 секунд для проверки этой статьи. Конвертер визуализирует `2025-02-03T10:00:00.000Z`. Исходная строка `2025-02-03T12:00:00+02:00` преобразуется обратно в тот же счетчик, поскольку ее показания на стене через два часа уравновешиваются положительным двухчасовым смещением.
В локальной строке браузера может отображаться третье время. Это не создает третьего события; это еще один проход форматирования за 1,738,577,600,000 миллисекунд. Подтвердите личность с помощью секунд или ISO, затем используйте каждые помеченные часы только для той аудитории, чью зону они представляют.
Это равенство также может стать приспособлением регрессии: проанализировать обе исходные строки и утвердить одно значение эпохи. Этот тест защищает арифметику смещения, не закрепляя текст отображения, зависящий от локали.
Отсутствующий указатель — голый 2024-05-01T10:00:00 неоднозначен, и как его интерпретируют разные языки.
Случай отсутствия указателя требует одного уточнения. Простая дата, такая как `2025-02-03`, читается как UTC согласно правилу ECMAScript, реализованному и протестированному здесь. Голая дата-время, например `2025-02-03T10:00:00`, читается как локальная и помечается. Назвать оба варианта просто «неоднозначными» означало бы противоречить кодексу.
Практическая безопасная форма момента обмена по-прежнему включает Z или смещение. Локальная дата-время может быть преднамеренной при вводе через элемент управления `datetime-local` панели, но скопируйте полученную строку ISO, прежде чем делиться ею. Это преобразование записывает, в какой момент текущая среда получена из настенных часов.
Отсутствующий указатель не всегда неоднозначен: эта реализация отличает даты от даты и времени.
ISO 8601 охватывает больше обозначений, чем демонстрирует этот конвертер, но репозиторий не предоставляет анализаторов или тестов для интервалов, длительности или дат недели. Принятие даты может варьироваться в зависимости от платформы для строк за пределами надежных документированных примеров. Поэтому в этой статье панель не рассматривается как общий валидатор грамматики ISO.
Если контракт API допускает специальную форму даты, проверьте ее с помощью синтаксического анализатора API. Путь от даты к эпохе ToolAcre соответствует явной дате и времени и форме локального средства выбора, которую он генерирует. Успешный анализ даты доказывает, что этот браузер принял строку, а не то, что каждый потребитель, соответствующий стандартам, должен ее принять.
Продолжительность, интервалы и даты недели выходят за рамки принятых входных данных, показанных здесь.
Прежде чем сравнивать поля часов, прочитайте временную метку до ее суффикса. Z привязывает записанные часы к UTC; числовое смещение возвращает арифметику в UTC; беззональная дата-время запрашивает браузер использовать локальную интерпретацию. Эти окончания отвечают на разные вопросы, несмотря на схожие префиксы.
Преобразователь маркирует созданный универсальный выходной сигнал и сообщает, когда он принял местное время. Используйте эти уведомления как часть результата, а не как украшение. Значение часа, скопированное без его обозначения, является неполным свидетельством, в то время как строка эпохи или каноническая ISO сохраняет момент неизменным для всех читателей.