Вопрос или проблема
Я недавно стал использовать Ubuntu и столкнулся с проблемой часовых поясов.
У меня 1794 количество на сервере Centos версии 7.
Версия tzdata
Команда: rpm -q tzdata
Вывод: tzdata-2024a-1.el7.noarch
Но у меня 454 количество на сервере Ubuntu версии 24.04.
Команда: dpkg-query -W tzdata
Вывод: tzdata 2024a-3ubuntu1.1
Из-за этой разницы я сталкиваюсь с проблемой часовых поясов для моих приложений.
Пожалуйста, проверьте и предоставьте мне какое-нибудь решение.
Обозначение часового пояса 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. Ниже приведен подробный анализ, который поможет вам лучше понять эти различия и способы их решения.
Анализ часовыми поясами на серверах
- Версия tzdata на CentOS и Ubuntu:
- На вашем сервере CentOS 7, версия
tzdata
—2024a-1.el7.noarch
, и у вас имеется 1794 часовых поясов. - На сервере Ubuntu 24.04, версия
tzdata
—2024a-3ubuntu1.1
, с 454 часовыми поясами.
- На вашем сервере CentOS 7, версия
Эти различия в количестве часовых поясов могут быть вызваны тем, что разные дистрибутивы, использующие разные подходы к классификации и наименованию часовых поясов.
-
Переименование зон:
Ваша проблема также связана с тем, что обозначение часового поясаAsia/Calcutta
было заменено наAsia/Kolkata
в пакете tzdata на Ubuntu. Это связано с изменениями в официальных наименованиях городов и стандартах именования часовых поясов в новой версии tzdata. Все устаревшие обозначения были перемещены в пакетtzdata-legacy
, что вызывает дальнейшие различия в данных. -
Установка пакета tzdata-legacy:
Чтобы восстановить доступ к старому обозначениюAsia/Calcutta
, вы можете установить пакетtzdata-legacy
. Это будет полезно, если ваша система использует данные часовых поясов, например, в базе данных. Чтобы установить этот пакет, выполните следующую команду:sudo apt install tzdata-legacy
После установки вы сможете использовать как старое, так и новое обозначение часового пояса.
Рекомендуемые шаги для решения проблемы
- Проверьте ваши приложения: Убедитесь, что ваши приложения корректно обрабатывают часовые пояса и могут работать как с новым, так и с устаревшим обозначением.
- Переконфигурируйте настройки часового пояса: Если ваши приложения зависят от определенных часовых поясов, убедитесь, что они настраивают правильные значения, а также проверьте настройки времени на серверах.
- Используйте API для работы с временными данными: Рассмотрите возможность использования API, таких как
moment-timezone
илиdate-fns-tz
, которые могут управлять часовыми поясами более эффективно и независимо от системной установки tzdata.
Заключение
Различия в данных часовых поясов на серверах CentOS и Ubuntu могут вызывать проблемы в работе приложений. Установка пакета tzdata-legacy
и тщательная проверка настроек ваших приложений может помочь решить возникшие проблемы с часовыми поясами. Более того, использование современных библиотек для работы с часовыми поясами может значительно улучшить управление временными данными.
Если у вас есть дополнительные вопросы или вам нужна помощь в процессе настройки, не стесняйтесь обращаться за поддержкой!