Русский

Инструменты разработчика · Конвертер временных меток Unix

Как переход на летнее время меняет то, что отображается в столбце местного времени

· Как это работает

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

Непрерывная линия эпохи, проходящая через свернутый интервал местных часов.
Оригинальная векторная иллюстрация ToolAcre

Дважды в год местные часы смещаются, и значения эпох вокруг перехода создают местное время, которое повторяется или никогда не существует. В этом посте объясняется механика, поэтому вывод преобразователя при изменении DST имеет смысл.

Событие зарегистрировано в 01:30 дважды — с интервалом в две эпохи с интервалом в час, и оба отображают одно и то же время на местных настенных часах.

Две разные эпохи могут быть отформатированы под одну и ту же метку настенных часов во время изменения смещения назад. В книге эта метка исправлена ​​на 01:30, но в репозитории не установлен универсальный переходный час. Интервал повторения принадлежит применимым правилам зоны браузера, а не самому времени Unix.

При появлении дубликатов сохраните эпоху, строку ISO и отображаемое смещение вместе. Сортировка только локального столбца `HH:mm` может обратить вспять или свернуть события. Рендеринг UTC в ToolAcre придает каждому моменту уникальную хронологическую привязку, даже когда знакомое местное лицо снова посещает более ранний диапазон.

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

Отсчет эпох происходит через переход без изменения единицы измерения или начала координат. Что меняется, так это смещение Intl, применяемое при форматировании даты в локальной зоне. Две последовательные секунды остаются последовательными в UTC, даже если их локальные метки перемещаются дальше или назад.

Это различие предотвращает деструктивные «исправления». Вычитание часа из сохраненных эпох, поскольку панель мониторинга повторяет час, изменяет действительные события. Исправьте форматирование, группировку или двусмысленность отображаемой метки. Сохраняйте момент машины, если только доказательства не покажут, что сами исходные часы были неправильными.

Полезный инвариант сохраняется при каждом изменении смещения: вычитание двух значений эпохи дает их истинную продолжительность. Вычитание времени отформатированных стен может быть невозможным, поскольку их смещения могут различаться.

Переход изменяет применимое смещение, в то время как эпоха остается непрерывной.

Во время изменения смещения вперед может не быть создан ряд локальных настенных надписей. Его ширину и положение нельзя безопасно обобщить из этой реализации; ToolAcre запрашивает Intl и сообщает результат. Он не содержит жестко запрограммированного предположения о том, что каждая смена длится один час или происходит в 02:00.

Преобразователь запускается с существующего момента, поэтому он просто показывает применимые локальные показания с обеих сторон. Планирование несуществующего локального входа — это другая операция. Если форма должна решить эту ситуацию, ее политика продукта должна решить, следует ли отклонить, переместить или переосмыслить запрошенное время стены.

Прямой переход может пропускать локальные показания; точный интервал зависит от проверенных правил зоны

Изменение назад приводит к тому, что другой диапазон появляется более одного раза при разных смещениях. Локальный текст становится недостаточным, если он не включает смещение или связанную эпоху. ToolAcre запрашивает `shortOffset`, давая читателю возможность различать два рендеринга, когда платформа предоставляет этот формат.

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

Обратный переход может повторить локальные показания; точный интервал зависит от проверенных правил зоны

Используйте переход, задокументированный для зоны, настроенной на тестовом устройстве, затем выберите вокруг нее две эпохи с интервалом в один час. Явно преобразуйте каждое значение в секунды и записывайте ISO, локальный вывод и смещение. Если локальные метки продвигаются на величину, отличную от UTC, разница будет компенсирована изменением смещения.

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

Рабочий пример: получение переходной пары из преобразователя вместо публикации непроверенного правила зоны.

В некоторых настроенных зонах сезонные изменения в течение тестируемого года могут отсутствовать; другие могут отличаться в зависимости от исторических дат. Конвертер может отображать эти результаты, но не объясняет и не изменяет правила. Расчет фиксированного смещения не может выявить точки изменения, поскольку предполагает проверяемое постоянство.

Для регрессионного тестирования закрепите среду и запишите ожидаемые данные о ее платформе, а не рассматривайте один ноутбук как универсальный. Для поддержки запросите имя зоны, мгновенное и отображаемое смещение. Сказав только «DST неправильно», мы упускаем доказательства, необходимые для воспроизведения того, что на самом деле отформатировал браузер.

Что здесь не распространяется — планирование будущего местного времени при изменении DST, для которого требуются правила зоны, а не фиксированное смещение.

Эта панель преобразует уже известное мгновение. Он не рассчитывает повторяющуюся будущую встречу, например «каждый понедельник в 09:00», посредством изменений смещения. Эта работа начинается с именованной зоны и политики пропусков и совпадений, ни один из которых не представлен одной фиксированной эпохой.

Объединение двух рабочих процессов приводит к незначительной ошибке: добавление семи раз 86,400 секунд сохраняет прошедшую продолжительность, а не обязательно ту же самую будущую метку настенных часов. Используйте логику планирования, созданную для повторения гражданского времени. После этого используйте преобразователь эпох, чтобы проверить конкретные разрешенные случаи.

Планировщик должен дополнительно сохранять, имел ли пользователь в виду более раннее или позднее возникновение во время перекрытия. Этот выбор не имеет представления в единственной строке часов с фиксированным смещением.

Вывод: доверяйте эпохе, сомневайтесь в настенных часах — и как чтение UTC конвертера временных меток Unix привязывает локальное значение

Доверьтесь эпохе при упорядочивании и относитесь к настенным часам как к контекстно-зависимому рендерингу. ToolAcre содержит одну константу даты, а Intl предоставляет UTC и локальные формы. Таким образом, неожиданный прыжок или повторение можно исследовать без изменения основного счета.

Пакет безопасной отладки состоит из необработанного значения, единицы измерения, вывода ISO, метки локальной зоны и смещения. В этих полях переход отображается как изменение правила форматирования. Без них повторяющийся текст часов наводит на размышления о повторяющихся запросах, задержке очередей или сломанных часах сервера, которые данные не поддерживают.

Этот пакет доказательств также делает отчеты об ошибках переносимыми. Другой инженер может воспроизвести момент UTC, даже если его собственная локальная зона и рендеринг настенных часов совершенно разные.