Разница во временных зонах данных

Вопрос или проблема

Я недавно стал использовать Ubuntu и столкнулся с проблемой часовых поясов.

У меня 1794 количество на сервере Centos версии 7.

Версия tzdata
Команда: rpm -q tzdata
Вывод: tzdata-2024a-1.el7.noarch

скриншот_сервера_centos

Но у меня 454 количество на сервере Ubuntu версии 24.04.

Команда: dpkg-query -W tzdata
Вывод: tzdata 2024a-3ubuntu1.1

скриншот_сервера_ubuntu

Из-за этой разницы я сталкиваюсь с проблемой часовых поясов для моих приложений.

Пожалуйста, проверьте и предоставьте мне какое-нибудь решение.

Обозначение часового пояса Asia/Calcutta, похоже, было перемещено в пакет tzdata-legacy:

$ apt-file list tzdata-legacy | grep Calcutta
tzdata-legacy: /usr/share/zoneinfo/Asia/Calcutta
tzdata-legacy: /usr/share/zoneinfo/right/Asia/Calcutta

при этом основной пакет tzdata теперь предоставляет только Asia/Kolkata, чтобы отразить текущее официальное английское написание города1:

$ apt-file list tzdata | grep Kol
tzdata: /usr/share/zoneinfo/Asia/Kolkata

Из /usr/share/doc/tzdata/NEWS.Debian.gz

tzdata (2023d-1) unstable; urgency=medium

    Начиная с 2023c-8, пакет tzdata включает только часовые пояса, которые 
    следуют современным правилам географического региона (континент или океан) 
    и названию города. Все устаревшие симлинки часовых поясов (старые 
    или объединенные часовые пояса, упомянутые в исходном файле назад) были 
    перемещены в tzdata-legacy. Это включает в себя часовые пояса US/*.

    Пожалуйста, установите tzdata-legacy, если вам нужны устаревшие 
    часовые пояса или для восстановления предыдущего поведения. Это может быть 
    необходимо в случае, если система предоставляет данные с учетом часового 
    пояса через сеть (например, SQL базы данных).

 -- Бенжамен Друнг <[email protected]>  Вт, 02 Янв 2024 14:17:33
+0100

Установка пакета tzdata-legacy должна сделать старый Asia/Calcutta доступным на вашей системе.


1. Смотрите, например, Переименование городов в Индии: Изменение официального английского названия

Ответ или решение

Разница в данных часовых поясов: подробный анализ

Ваша проблема с зоной времени на серверах CentOS и Ubuntu заключается в различиях в количестве и наименовании часовых поясов, представленных в разных версиях пакетов tzdata. Ниже приведен подробный анализ, который поможет вам лучше понять эти различия и способы их решения.

Анализ часовыми поясами на серверах

  1. Версия tzdata на CentOS и Ubuntu:
    • На вашем сервере CentOS 7, версия tzdata2024a-1.el7.noarch, и у вас имеется 1794 часовых поясов.
    • На сервере Ubuntu 24.04, версия tzdata2024a-3ubuntu1.1, с 454 часовыми поясами.

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

  1. Переименование зон:
    Ваша проблема также связана с тем, что обозначение часового пояса Asia/Calcutta было заменено на Asia/Kolkata в пакете tzdata на Ubuntu. Это связано с изменениями в официальных наименованиях городов и стандартах именования часовых поясов в новой версии tzdata. Все устаревшие обозначения были перемещены в пакет tzdata-legacy, что вызывает дальнейшие различия в данных.

  2. Установка пакета tzdata-legacy:
    Чтобы восстановить доступ к старому обозначению Asia/Calcutta, вы можете установить пакет tzdata-legacy. Это будет полезно, если ваша система использует данные часовых поясов, например, в базе данных. Чтобы установить этот пакет, выполните следующую команду:

    sudo apt install tzdata-legacy

    После установки вы сможете использовать как старое, так и новое обозначение часового пояса.

Рекомендуемые шаги для решения проблемы

  • Проверьте ваши приложения: Убедитесь, что ваши приложения корректно обрабатывают часовые пояса и могут работать как с новым, так и с устаревшим обозначением.
  • Переконфигурируйте настройки часового пояса: Если ваши приложения зависят от определенных часовых поясов, убедитесь, что они настраивают правильные значения, а также проверьте настройки времени на серверах.
  • Используйте API для работы с временными данными: Рассмотрите возможность использования API, таких как moment-timezone или date-fns-tz, которые могут управлять часовыми поясами более эффективно и независимо от системной установки tzdata.

Заключение

Различия в данных часовых поясов на серверах CentOS и Ubuntu могут вызывать проблемы в работе приложений. Установка пакета tzdata-legacy и тщательная проверка настроек ваших приложений может помочь решить возникшие проблемы с часовыми поясами. Более того, использование современных библиотек для работы с часовыми поясами может значительно улучшить управление временными данными.

Если у вас есть дополнительные вопросы или вам нужна помощь в процессе настройки, не стесняйтесь обращаться за поддержкой!

Оцените материал
Добавить комментарий

Капча загружается...