Так случилось, что компания Apple не обновляет часовые пояса (Timezone) на старых Mac OS X. А по факту, достаточно большое количество людей все еще пользуются устаревшими версиями операционной системы. Такое случилось и со мной. Один из больших начальников нашей группы компании пользуется MacBook Air с Mac OS X Lion 10.7.5. Обновлять ее он конечно же не хочет – нет у него столько времени. А ездит (в том числе и по заграницам) он много и делать в итоге что-то надо. В итоге, решение было найдено! Добро пожаловать под кат для подробностей.
Погуглив часок, я нашел решение и немного его адаптировал под Mac OS X 10.7.5. Для обновления Timezone нам потребуются 3 инструмента:
- Command Line Tools
- ICU
- И актуальные Timezone
Погнали :-)
1. Скачиваем Command Line Tools (OS X Lion) for Xcode – April 2013 по ссылке https://developer.apple.com/downloads/index.action. Для скачивания, вам понадобится Apple ID.
2. Запускаем скаченный xcode462_cltools_10_76938260a.dmg файл и устанавливаем его. Установщик выдаст сообщение о «Просроченном сертификате» — игнорируем его и нажимаем Продолжить.
3. После завершения установки, проверяем, все ли корректно установилось. Запускаем Терминал и вводим команду gcc –v. Результат должен быть как на скриншоте.
4. Не закрываем Терминал, продолжаем установку. Скачиваем ICU:
git clone -b tzupdates-10.7 https://github.com/grig/osx-icu
5. Скачиваем актуальные timezone:
curl -O http://www.iana.org/time-zones/repository/releases/tzdata2014j.tar.gz
6. Переходим в папку icuSources
cd osx-icu/icuSources
7. Копируем tzdata2014j.tar.gz в папку tools/tzcode
cp ../../tzdata2014j.tar.gz tools/tzcode
8. Запускаем configure
./runConfigureICU MacOSX —with-data-packaging=archive
9. Собираем проект
gnumake
10. Почти все готово, осталось заменить старый файл timezone на новый. Делаем бекап старого файла
sudo cp /usr/share/icu/icudt46l.dat{,.bak}
11. Устанавливаем новые файл timezone
sudo install -o root -g wheel -m 0644 -Sp data/out/icudt46l.dat /usr/share/icu/icudt46l.dat
Перезагружаем Mac OS X и радуемся корректным Timezone’ам :-). Автоопределение положения теперь тоже будет работать корректно. Оставайтесь с нами :-)
При выполнении ./runConfigureICU MacOSX —with-data-packaging=archive
Пишет:
MacBook-Pro-MacBook:icuSources macbook$ ./runConfigureICU MacOSX —with-data-packaging=archive
export CPP= CC= CXX= CPPFLAGS= CFLAGS= -O2 CXXFLAGS= -O2 LDFLAGS= MAKE=
Running ./configure —with-data-packaging=archive for MacOS X (Darwin) using the GNU C++ compiler
configure: error: invalid variable name: `—with-data-packaging’
./runConfigureICU: ./configure failed
Замените в «—with-data-packaging» знак «—» на 2 знака тире
Спасибо за статью. Работает!!!
Спасибо большое! Я уже из-за этих дат перестал пользоваться календарем на старом MacBook. Теперь он наконец будет показывать правильное время у событий.
Большое пожалуйста )) Подписывайтесь на блог, скоро будет много нового материала!
Спасибо за подробную информацию все получилось огромное спасибо автору!!!!!
Огромное пожалуйста )) Очень рад, что вам помогла эта статья )
Доброго дня!
При вводе команды «sudo cp /usr/share/icu/icudt46l.dat{,.bak}» выдает надпись:
«WARNING: Improper use of the sudo command could lead to data loss
or the deletion of important system files. Please double-check your
typing when using sudo. Type «man sudo» for more information.
To proceed, enter your password, or type Ctrl-C to abort.
Password:»
Но пароль ввести не дает
На самом деле пароль ввести дает, просто в *nix-системах ввод пароля (сами символы или звездочки) не отображаются
Вопрос.
Сделал по инструкции, но проблема осталась: письма на почту приходят в будущем времени, т.е. на час вперёд. Раньше было хуже: отправлялись с отставанием на час (у получателя время было на час назад у письма), а приходили с отметкой на час вперёд. Сейчас же осталось так: письма приходят с отметкой времени на час вперёд, т.е. отличаются от системного о в 1 час вперёд, а отправляются с корректным временем.
Подскажите, как исправить?
Для начала скажите — вы случайно пояса не меняли в ручную, до того, как сделали все действия по статье. Еще конечно как вариант, у отправителя вашего возможно пояс не тот выбран. Но я все же склоняюсь к первому варианту.
Ранее была такая же проблема с 10.6.8 помогло вот это: http://m.geektimes.ru/post/131621/.
Обновился до 10.7.5 и опять проблема появилась.
Теперь сделал по вышеуказанной инструкции в статье.
Часовой пояс «Москва-Россия», синхронизацию отключил (хотя экспериментировал с синхронизацией: не помогает).
А как посмотреть какой щас часовой пояс +3 или +4 (а то только указывается «Москва-Россия»)?
Дополнительно: почтовая программа на Mac OS X 10.7.5 — Mozilla Thunderbird.
Отправители разные: как ПК на Windows, так и телефоны на Android и все находятся в одном часовом поясе — Москва.
Пояса менял в ручную, т.е. если был в ручную установлен часовой пояс, и после проделанных действий что-то не так настроилось?
Если команда в терминале, чтобы посмотреть всё ли верно применилось по инструкции выше?
Попробуйте выполнить в терминале на маке команду date и выложите результат выполнения
Проблема со стороны почтовой программы Mozilla Thunderbird — она показывает во входящих и исходящих сообщениях время прибавляя один час.
В стандартном почтовом клиенте время корректно отображается.
Буду на форуме Mozilla Thunderbird разбираться)
Спасибо)
P.S.
Lions-Mac:~ User$ date
пятница, 22 января 2016 г. 12:50:21 (MSK)
Не сообразил вас спросить про почтовый клиент, думал пользуйтесь стандартным Mail
А на следующей системе, конкретно на OS X Mountain Lion 10.8.5, Apple поддерживает часовые пояса для России в актуальном состоянии или придётся также в ручную править?
Так, 10.8.5 вышла 13.09.2013 — однозначно на ней часовые пояса не обновляются автоматически и делать можно по этой же статье. Часовые пояса актуальны только в 10.9.5, 10.1х.
Вопрос.
На сайте http://www.iana.org/time-zones обновляются постоянно как часовые пояса (
Time Zone Data), так и Время зоны (Time Zone Code). Здесь в инструкции скачивались только часовые пояса.
Может быть ещё необходимо устанавливать времена зон, чтобы всё корректно было?
Если да, то как их тоже установить?
Насколько я понимаю, это просто коды таймзон, т.е. Europe/Moscow, если я не ошибаюсь конечно. А в у вас что-то не получилось на 10.8.5 обновить?
Некоторые почтовые программы некорректно отображают время входящих и исходящих писем, например Mozilla Thunderbird, Opera Mail, в исходниках писем в исходящих часовой пояс +0400.
Но если выбрать часовой пояс Багдад и отключить синхронизацию, то всё нормально. Поэтому я предполагаю, что некоторые почтовые программы обращаются к определённым данным в системе, которые по инструкции в статье не обновляются.
10.8.5 не устанавливал, пока что на 10.7.5 хочу решить проблему.
Вопрос.
С помощью Time Zone Data мы собрали файл icudt46l.dat и меняем его в системе на собранный.
А как обновлять Time Zone Code? Может быть из-за этого некоторые почтовые программы путаются со временем на час вперёд, когда указан часовой пояс Москва.
Time Zone Code в данном случае были внутри ICU (пункт 4). Вы можете попробовать собрать все заново, предварительно заменив содержимое папки osx-icu/icuSources/tools/tzcode/ содержимым архива с сайта http://www.iana.org/time-zones. Но как мне кажется, проблема тут именно в работе конкретной почтовой программы. Как вариант, попробовать сами почтовые программы обновить.
Проблему так и не решил.
Что-то не так с Московским часовым поясом (а может быть и для всей России).
Выход нашёл для себя не очень, но по крайней мере время в почте отображается верно: выставил часовой пояс «Багдад — Ирак».
=
При замене файлов в папке osx-icu/icuSources/tools/tzcode/ на новые с http://www.iana.org/time-zones возникает ошибка на стадии сбора проекта gnumake.
Программы OperaMail и Thunderbird актуальной версии. Видимо что-то не совсем так с Московским часовым поясом и программы ссылаются в системе на это.
А если для теста попробовать встроенную программу Mail? При этом пояс выставить Московский
Встроенная программа Mail корректно время отображает.
Меня интересует, почему некоторый сторонний софт (OperaMail, Thunderbird) в mac os 10.7.5 не корректно отображает время при Московском часовом поясе, а при часовом поясе Багдад-Ирак всё нормально.
Если у вас есть возможность — проверьте (mac os 10.7.5, почтовая программа Thunderbird, Московский часовой пояс, проверить сообщения в папке входящие и отправленные).
К сожалению, проверить на Mac OS 10.7.5 у меня нет возможности
Вроде бы работает.
Спасибо.
Пожалуйста :-)
Подскажите в чём беда?
10.6.8
в терминале время корректное, а на рабочем столе нет.
/usr/share/icu/icudt40l.dat обновил.
http://www.iana.org/time-zones/tzdata2016f.tar.gz скачал, распаковал и обновил зоны.
Перезагрузку делал.
«http://www.iana.org/time-zones/tzdata2016f.tar.gz скачал, распаковал и обновил зоны.» — покажите вывод командной строки, после распаковки и обновления. Скорее всего у вас ничего не обновилось. Попробуйте сперва обновить tzdata2014 как в указано в посте.
Сделал для 10.10.3
Дай бог тебе здоровья, добрый человек!
Не помогло :-\ Система 10.8.5
Шел четко по инструкции, только в пункте с бэкапом файла timezone не сошлось, так как вместо icudt46l.dat в папке лежал файл icudt49l.dat (забэкапил соответственно его)
Далее, после установки нового файла, кроме icudt46l.dat вновь появился icudt49l.dat (с датой создания 1 янв 2012 года).
Подскажешь, в чем может быть проблема?
Так, поправка к сообщении выше — понял, что 49l не «вновь появился», а просто остался там и установка его не снесла. Решил удалить его (49l.dat) вручную, надеясь, что после перезагрузки система подхватит 46l.date, но не тут-то было. Теперь у меня ноут не загружается.. После появления лого, бело-серый экран и периодически вращающийся кружок.. Подскажите, пожалуйста, как это поправить?
«4. Не закрываем Терминал, продолжаем установку. Скачиваем ICU:
git clone -b tzupdates-10.7 https://github.com/grig/osx-icu»
Вам надо было для 10.8.5 скачать ICU посвежее, получившийся файл для вашей системы не корректный. Сейчас либо восстанавливаться из копии Time Machine, либо попробовать каким-то образом удалить файл icudt46l.dat и загрузиться. Можно еще попробовать переименовать его в icudt49l.dat и посмотреть, что будет.
После долгих разборок таки смог в recovery mode вернуть файлик, и реанимировал ноут.
Теперь новый затык. По вашей рекомендации скачал нужный icu, также последний timezone 2016 года,
Далее все по пунктам выполняю, но в итоге в папке out нет файла dat. Только папки build и tmp.
В последних строках после gnumake вылезает ошибка. подскажите, пожалуйста, возможно из-за нее ничего не получается?
Скрин: http://screenshot.ru/upload/image/zaYF
Не подскажите, у вас получилось решить проблему перевода Mac OS X 10.8.5 на зимнее время после 26 октября 2014?
Пытаюсь собрать icudt49l.dat с tzdata2014i.tar.gz и новее, но ничего не выходит =(
Ошибка та же, для сборки icudt49l.dat необходимы три зоны solar 87, 88, 89, но в файлах tzdata2014i.tar.gz и новее этих зон уже нет.
Файл нашел, извините за беспокойство.
Woker, чем дело кончилось? У меня в аналогичной ситуации файл icudt46l.dat лежит в /out/tmp/, а в целевой папке, соответственно icudt49l.dat.
Переименование работает? Кирпич из рабочей машины делать нет желания… OSX 10.8.5