Знаете, что общего у Турции, Чили, России, Венесуэлы, Азербайджана, Северной Кореи и Гаити? Хаос в управлении временными зонами. Нет, это не шутка. На самом деле это достаточно серьёзная проблема. Хуже всего во временных зонах не то, что они вообще существуют, и даже не летнее время. Хуже всего то, что часто они изменяются совершенно внезапно. Позвольте я объясню. Во-первых, с глобальной точки зрения может показаться, что временные зоны должны бы управляться каким-нибудь относительно нейтральным международным органом, таким как ITU (Международный союз электросвязи, подразделение ООН) или, возможно, IAU (Международный астрономический союз). Однако в действительности каждая временная зона в мире управляется локально. Само по себе это не проблема. Я полностью согласен с тем, что страны в пределах своих границ должны иметь возможность делать со временем что угодно. Но дело в том, что уже который раз мы сталкиваемся с одной и той же проблемой: зоны изменяются без должного уведомления. Все те страны, перечисленные ранее, наряду с многими прочими недавно поступили именно так. Очень важно, чтобы перед внесением изменений в свои временные зоны или правила перехода на летнее время правительства государств оставляли достаточное количество времени на обновления для IT индустрии. Они должны учитывать тот объём работы, которую люди должны при этом выполнить, чтобы проверить изменения, создать обновление, протестировать его, а затем опубликовать и распространить. Кроме этого нужно иметь в виду, что конечные пользователи не всегда обновляют свои системы сразу же. Обычное дело, когда пользователь получает обновление временной зоны через недели, а то и месяцы после публикации. В качестве примера взглянем на Турцию. В 2015 году правительство решило, что было бы неплохо отложить конец летнего времени на две недели, чтобы дать людям больше светлого времени для голосования в период выборов. Они перенесли окончание летнего времени с 25 октября на 8 ноября. Первые слухи об этом появились в неофициальной новостной статье 8 сентября, примерно за 6 недель до предполагаемого изменения. Эта статья не была замечена TZ коммьюнити (прим. пер.: имеется в виду сообщество, занимающееся временными зонами; это просто люди, волонтёры, объединённые интересом; далее будет использоваться этот термин, иного хорошего перевода я не придумал), вплоть до 19 сентября. Сложно отталкиваться от одних лишь новостей, ибо они часто содержат неверную информацию или путаются в деталях. Несколько слов чиновника журналисту — этого просто недостаточно. 29 сентября правительственное новостное агентство также сообщило об изменении. Это всё ещё не было полностью официальным, ибо не сопровождалось ссылкой на какой-либо указ или закон. Но этого было достаточно, чтобы убедить TZ коммьюнити, что это действительно может случиться, после чего было инициировано изменение в базу данных временных зон IANA, а несколькими днями позже, 1 октября, было выпущено обновление. Наконец 4 октября в правительственном бюллетене было выпущено официальное объявление. Примерно за три недели до вступления изменения в силу. Многие представители IT индустрии, включая крупнейших игроков типа Apple, Google и Oracle, забрали данные из IANA и опубликовали их через свои собственные каналы. Например, Apple выпустила обновление с изменением зоны для iPhone и iPad вместе с обновлением iOS 9.1 21 октября, оставив пользователям лишь три дня, чтобы установить это обновление и избежать путаницы со временем. Для Microsoft Windows, которая обновляет временные зоны несколько иначе и требует более высокого уровня подтверждения изменений, объявление было сделано 9 октября, а 20 октября было выпущено обновление. В некоторых случаях день изменения был пропущен. Например, так случилось с pytz — популярной библиотекой временных зон для Python, обновление 2015.7 которой было опубликовано лишь 26 октября. И что же в итоге случилось? Цитата BBC: Или вот из сообщений IBT: Эффект от этого, по всей видимости, был прямо противоположный ожидаемому. Но вообще-то, правительству должно быть виднее, потому что практически та же ерунда случилась годом ранее! По соощениям IBNA в 2014-ом: Не только Турция не учится на своих ошибках, другие страны мира наступали на те же самые грабли не раз. Помните список в начале поста? Давайте чуть подробнее: В Чили в 2015 году использовали постоянное летнее время, но 13 марта 2016 года правительство анонсировало переход на поясное время начиная с 15 мая (уведомление за два месяца). В России 11 различных смещений во временных зонах, от UTC+02 до UTC+12, с их сложной историей изменений.
27 марта 2016 года 6 регионов сменили временные зоны. Каждый из этих регионов выпустил свой собственный закон, задающий это изменение. Один из этих законов был подписан 30 декабря (уведомление за 12 недель), что вполне допустимо. Однако другие были подписаны 15 февраля (уведомление за шесть недель) или 9 марта (уведомление за две недели).
Ещё два других региона ожидали подписания указов в течение всего этого периода, один из этих указов был подписан лишь 5 апреля с датой перехода 24 апреля (прим. пер.: речь о Магаданской области) (уведомление за три недели). Другой до сих пор ожидает подписания президентом. Ожидается, что это произойдёт в течение ближайших дней, а датой перехода будет 29 мая (уведомление за четыре недели) (прим. пер.: речь о Томской области; кстати, мы уже накатили апдейт). Венесуэла была на UTC-4:30 с 2007 года, но недавно власти решили вернуться на UTC-4 с 1 мая 2016. О переходе впервые было объявлено 15 апреля, официально — 18 апреля с публикацией в правительственном бюллетене (уведомление за две недели). Азербайджан в 2016 году отменил переход на летнее время. Изменение было запланировано на 27 марта, но никаких сообщений об этом не было вплоть до 17 марта (уведомление за десять дней). Северная Корея переехала из UTC-9 в UTC-8:30 15 августа 2015. Об этом было объявлено 7 августа (уведомление за восемь дней). Все вышеописанные случаи возникли с определённой степенью неожиданности, тем не менее есть места на планете, где вообще не парятся на тему нормального расписания переходов на летнее время. Одно из таких мест — Фиджи. Переход на летнее время выполняется там с 2009 года. Однако каждый год правительство делает объявление о том, когда летнее время начнётся и когда оно закончится. Каждый год эти даты разные, и каждый раз до последнего момента не ясно, когда власти примут решение или что делать в случае, если они о нём не объявят. Было бы гораздо проще, если бы они приняли постоянное расписание, а объявление делали только в случае отклонений от этого расписания. Другое такое место — Марокко, где расписание начала и конца летнего времени нормально определено, но каждый год начиная с 2012 там применяется «период приостановки летнего времени», когда летнее время заканчивается перед началом Рамадана и снова начинается чуть позднее. Это означает не только перевод часов четыре раза в течение календарного года, но также и то, что никто понятия не имеет, когда произойдут второй и третий переходы, пока власти не сделают объявление. Отчасти это обосновано тем, что даты Рамадана привязаны к наблюдаемому новолунию. Тем не менее, лично я считаю, что они должны зафиксировать переход на летнее время, пусть даже оно начинается до Рамадана и заканчивается после. Непредсказуемость дат приводит к тому, что становится слишком сложно узнать время в Морокко, если ты не в Морокко. (Кстати, Египет практиковал то же самое, но только в 2010 и 2014.) Прежде всего, я должен подчеркнуть, что это мои личные рекомендации. Я не говорю ни от лица своего правительства, ни своего работодателя, ни TZ коммьюнити. Эти рекомендации основаны на многолетнем опыте работы с временными зонами и наблюдениях происходящего. Если вы собираетесь внести изменение в свою временную зону или зоны, — будь это изменение смещения от UTC, или же принятие или отмена летнего времени, или изменение дат начала и конца летнего времени, — пожалуйста, сделайте следующее: Следование этим правилам гарантирует, что ваше изменение дойдёт до IT отрасли, включая компьютеры, мобильные телефоны и прочие устройства. PHP pro, Go noob, websec fan