Pull to refresh
  • by relevance
  • by date
  • by rating

Вопрос времени

Lumber room
Сегодня в 03:00 ночи у большинства хабраюзеров временная зона сменилась с EEST на EET.

Лишь одно учреждение в России не переводит часы на летнее время. Ввиду сложности настроек вычислительного комплекса в Центре управления полетами, часы там не переводят. ЦУП круглогодично работает по зимнему московскому времени.

Дважды в год с новой силой возобновляются споры о необходимости перевода часов. Звучат предположения, что перевод часов на летнее время, а потом и обратный перевод на зимнее время могут негативно сказываться на здоровье. Однако, по словам директора Центра судебной психиатрии имени Сербского, никаких достоверных данных об отрицательном влиянии на человека перевода часов нет. Для максимально мягкого прохождения перевода часов на летнее время, достаточно скорректировать свой режим выходного дня. И в ночь перевода часов лечь спать на полчаса-час раньше.

(с) http://absite.ru/

Интересно, сколько человек сегодня на работу придёт на час раньше? :)

PS: да, и в воскресенье тоже люди работают…
Total votes 22: ↑11 and ↓11 0
Views 186
Comments 17

Перевод даты в неименованный часовой пояс

PHP *
При создании объекта DateTime в строке со временем можно указывать часовой пояс (сдвиг в часах и минут от GMT), например

new DateTime('2009-09-30 12:00:00+0400');


Если у нас есть две даты, которые находятся в разных часовых поясах, то иногда полезно посмотреть время одной даты в часовом поясе другой. Если обе даты были инициализированы способом, указанным выше (т.е. использую неименованные часовые пояса), то происходит ошибка «Can only do this for zones with ID for now».

Чтобы её обойти, делаем наследника DateTime
Читать дальше →
Total votes 14: ↑10 and ↓4 +6
Views 1.1K
Comments 0

Как перестать думать о часовых поясах и начать жить

Website development *
В вашей системе время играет важную роль? Ваши пользователи/компоненты распределены по территории всего земного шара, или хотя бы нашей необъятной родины? Значит, вам нужны часовые пояса. Что ж, это просто. Самое сложное, что вам придется сделать — не запутаться. Об этом мы с вами и поговорим. Для начала вам нужно научиться правильно думать. Думая правильно, все остальное будет для вас либо самоочевидным, либо достаточно простым.

Начнем с часов. Все мы привыкли определять время, глядя на часы на стене. При работе с часовыми поясами такое время называется Wall clock time. В принципе, ничего плохого в нем нет, только в разных местах земного шара в один и тот же момент времени часы показывают разное время. Если задаться целью, можно придумать алгоритм перевода wall clock time одного часового пояса в wall clock time другого. Обычно надо прибавить/отнять разницу в часах между часовыми поясами, кроме (внимание) моментов перехода на летнее/зимнее время. Вот когда начинается переход, вычисления становятся по-настоящему сложными.

Нам же нужно что-то простое и пуленепробиваемое, как… целое число.
Читать дальше →
Total votes 74: ↑63 and ↓11 +52
Views 16K
Comments 70

Часовые пояса

Lumber room
По долгу учебы последнее время приходится ездить из России в Украину и обратно.

И что же приходится делать при смене часового пояса?
Зайти на все посещаемые сайты, и поменять часовой пояс.

Несложно догадаться, что их, по меньшей мере, с десяток, и у каждого он запрятан где-то в недрах настроек. В некоторых случаях, если забыть изменить часовой пояс в настройках сайта, но изменить его на компьютере (а значит и в javascript), это может привести к странным результатам.

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

Нужно что-то с этим делать.

Первая идея — по аналогии с OpenID или gravatar сделать что-то типа OpenTimeZone, сервис, в котором человек указывает свой часовой пояс, а все остальные сервисы берут его оттуда. Но, судя по достаточно малой распространённости вышеуказанных сервисов, и эту идею будет внедрить сложно.

Вторая идея — использовать всюду что-то глобальное (GMT, UTC), и только на клиентской стороне делать перевод в локальное время. Однако это усложняет код клиентской стороны, и работает только для Web. Для напоминаний через e-mail такой подход не годится, так как там нет javascript.
Total votes 9: ↑4 and ↓5 -1
Views 422
Comments 16

Решение проблемы часовых поясов в веб-приложении

Website development *


Запуская наш проект в регионе, где часовой пояс был отличен от московского, мы столкнулись с проблемой разницы местного времени и времени сервера (московский часовой пояс). Надо сказать, что логика работы проекта сильно привязана к датам и времени и оставлять дату в московском времени было нельзя. Практически все даты у нас хранились в MySQL базе в формате DATETIME, что, как в последствии оказалось, не лучшим образом подходит для организации работы приложения в нескольких часовых поясах.
Читать дальше →
Total votes 65: ↑57 and ↓8 +49
Views 29K
Comments 42

Глобальная база данных часовых поясов закрыта по судебному иску!

Copyright
Translation
TZ_database, ключевой источник информации о часовых поясах в мире ПО, закрыта в следствии обвинения в нарушении авторских прав.

Закрытие было инициировано в связи с иском от Astrolabe Inc (производитель ПО для астрологов) против 2 физ. лиц, Артура Девида Олсона и Пауля Р. Эггерта, ментейнеров БД с середины 80х, 30 сентября в Бостоне — www.scribd.com/doc/67760407/ASTROLABE-INC-Vs-ARTHUR-DAVID-OLSON-and-PAUL-EGGERT-Complaint.
Читать дальше →
Total votes 137: ↑128 and ↓9 +119
Views 6.4K
Comments 130

Изменение часовых зон в России, Белоруссии и на Украине

System administration *
Как вы, наверняка, уже слышали, осенью 2011 сразу несколько государств приняли решение об изменении порядка исчисления времени на своей территории, а также об отмене сезонного перехода на летнее время.
В списке этих государств: Россия, Белоруссия, Украина, частично признанные государства: Абхазия и Южная Осетия, а также непризнанное государство Приднестровье. Т.е. во всех часовых поясах этих стран теперь круглый год будет фиксированный сдвиг относительно UTC, без дополнительных сезонных сдвигов.
(Примечание: Украина сначала приняла решение о переходе на время UTC+3 без летнего времени, но потом отменила принятое ранее решение и пока вернулась к прежнему порядку исчисления времени с сезонными переводами часов. Подробности ниже.)

Server clockВ этой статье я опишу суть принятых изменений часовых поясов и опишу техническую сторону вопроса касательно IT-систем (корпоративной инфраструктуры, серверов, рабочих станций, сервисов, приложений и т.п.). Постараюсь ответить на ряд основных вопросов, возникающих в связи с этими изменениями:
— Какие IT-системы может затронуть изменение часовых поясов?
— Какие проблемы это может вызвать?
— Как подготовиться к этому, чтобы по возможности избежать проблем?

Полагаю, многим системным/прикладным администраторам, а также некоторым разработчикам приложений/сервисов, полезно будет ознакомиться с этим материалом. А потом предлагаю всем заинтересованным обсудить и дополнить эту информацию в комментариях.
Для начала немного общей информации...
Total votes 263: ↑254 and ↓9 +245
Views 37K
Comments 101

Переезд временной зоны MSD в MSK — новый Y2K локального масштаба

System administration *
Все, наверное, хоть раз слышали, что в России с 2011 года отменен переход с летнего время на зимнее. Чем же это грозит каждому из нас — и администраторам большого количества серверов в сложных системах, и обычным пользователям, имеющим один компьютер и мобильный телефон? Что случится в ночь с 29 на 30 октября 2011 — до которой осталось, кстати, всего 2 недели?

Новый Федеральный закон Российской Федерации от 3 июня 2011 г. N 107-ФЗ «Об исчислении времени»:
  • принят Государственной Думой 2011-05-20
  • одобрен Советом Федерации 2011-05-25
  • опубликован 2011-06-06
  • подписан президентом 2011-06-09
  • вступил в силу с 2011-08-07
Чем же грозят нам эти изменения и что от этого может сломаться?
Читать дальше →
Total votes 147: ↑144 and ↓3 +141
Views 24K
Comments 193

Tzdata — глобальная база знаний о часовых поясах

System administration *
Если нам где-либо (например, в каких-то приложениях) требуется работать не только с универсальным временем UTC, но и с местным временем в различных точках Земли, то здесь встаёт вопрос о необходимости некой базы знаний о том, как вычисляется локальное время относительно UTC в различных регионах мира.

Многие Unix-like системы для хранения информации обо всех мировых часовых поясах используют базу tzdata (она же tz database, она же zoneinfo database, она же Olson database — в честь Артура Олсона, основателя этой базы знаний).

Впервые начал собирать эту базу Артур Дэвид Олсон (Arthur David Olson), позже к этому проекту подключились и другие участники. Сейчас же основным коммитером новой информации в базу tzdata является Пол Эггерт (Paul Eggert), а Артур Олсон сейчас занимается разработкой и поддержкой утилит для работы с локальным временем и данными о часовых поясах (пакет tzcode).

В базе tzdata содержится детальная информация обо всех часовых поясах во всех регионах мира:
— координатная привязка основных населённых пунктов, характеризующих часовой пояс;
— смещение локального времени в различных регионах относительно универсального времени UTC;
— указано, в каких регионах применяется летнее время (DST), насколько оно смещается относительно стандартного, указаны точные даты и время переключения на летнее время и обратно в различных регионах в различные периоды;
— информация о високосных секундах (leap seconds).
Читать дальше →
Total votes 74: ↑67 and ↓7 +60
Views 34K
Comments 12

Обновление временных зон на Android

Development for Android *
Sandbox
Прочитав статью «Переезд временной зоны MSD в MSK — новый Y2K локального масштаба» — был, мягко говоря, озадачен. Неужели никто до сих пор не сделал какого-либо патча для Android? Вдумчивое гугление привело к подтверждению информации: да, патчей нет. Обновлений тоже нет. Что хотите — то и делайте.
Ну вот, собственно — и начал делать…
Читать дальше →
Total votes 70: ↑68 and ↓2 +66
Views 36K
Comments 85

Устранение проблем с автоматической синхронизацией времени в Android

Development for Android *
Sandbox
Прочитав статью «Переезд временной зоны MSD в MSK — новый Y2K локального масштаба» — вспомнил, что вместе с коллегой по работе уже давно решил эту проблему на Android (HTC Hero) и хотел написать в песочницу, но все откладывал на потом. А сегодня появилась очередная статья «Обновление временных зон на Android» практически похоронившая идею написания и, подтвердившая идею, что не надо откладывать важные вещи на потом. Но… немного повспоминав, я всё-таки решился, потому что в данных статьях рассматривалась проблемы связанные с переходом на зимнее/летнее время и совсем не затрагивался момент касающийся работы виджета часов с погодой и автоматического определения времени через оператора сотовой связи.

Читать дальше →
Total votes 31: ↑29 and ↓2 +27
Views 139K
Comments 22

Своеобразие cron при не-переводе времени на зимнее

*nix *
Сегодня мы бы перевели время. И мы бы сделали это, если бы не указ Президента «Об отмене перехода на сезонное время»… Все, видимо, обновили ПО на серверах (и мы не исключение) и не ждали подвоха, но…

Тестовый скрипт, проверяющий живучесть одной из систем, радостно отрапортовал мне сегодня в час дня вместо запланированных полудня. Я полез на сервер. Время стояло правильное (не переведенное), таймзона тоже верная. Проверил как Ruby возвращает время. Тоже правильно. Посмотрел логи. Время нигде не перевелось! (как и должно было быть).

Закралось одно подозрение, и я вписал в кронтаб тестовый запуск cron'а — ага! — так и срабатывает с задержкой на час! Перезапустил крон. Еще один тест. Да, теперь работает как надо. Нашли! Правда, последовавший за этим ручной перезапуск кронов на остальных (порядка 20) серверах — занятие было еще то.

Мораль: дефолтный cron на FreeBSD (разных версий, вплоть до 8.2) нуждается в перезапуске, после даты «непереведения» времени, иначе где-то в своих недрах все-таки его переводит! Интересно, что будет весной (может быть, к весне обновится?). Или может уже стоило обновить, но теперь удостовериться можно будет только весной?..

«Хозяйке на заметку», как говорится: «если ломатете голову, что сегодня пошло не так, перезапустите крон».

PS. Linux-овые машины (конкретно: Debian и Gentoo с vixie-cron) не оказались подвержены данной оказии. Ну, это не мудрено — там сам крон другой. Но тем не менее, на сабжевой ОС мы все же столкнулись с данным, скажем так, своеобразием поведения отдельно взятого системного приложения.
Total votes 53: ↑47 and ↓6 +41
Views 3.7K
Comments 42

Лечим перевод времени на джейлбрейкнутой ios 4.x

Smartphones
Как известно и тучей топиков упомянуто, вчера случился маленький y2k. Владельцам официальных девайсов беспокоиться особо не о чем — апдейты на то и апдейты.
Но что делать счастливым обладателям заморских трубок, для которых слова (untethered jailbreak) и разлочка(unlock) — не просто слова?
На самом деле не так уж и много — нужно обновить tzdata непосредственно в системе и в ICU.
Как это сделать?
Total votes 16: ↑11 and ↓5 +6
Views 3.3K
Comments 36

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

Configuring Linux *
Для тех новичков, кто проспал в выходные, и забыл озаботиться выключением перевода своих Debian-систем на зимнее время – эта мини-статья. Способы это сделать – очень быстрые, не претендующие на самую правильность, но работающие. Рассмотрены будут два поколения, до Lenny и соответственно после него. Ввиду того, что у некоторых сервера работают годами, то наличие таких «древностей» еще имеет место.

Читать дальше →
Total votes 30: ↑23 and ↓7 +16
Views 4.9K
Comments 19

Ручное обновление базы данных часовых поясов в старых дистрибутивах Линукс

System administration *
Sandbox
Все может быть, что данная заметка пригодится тем суркам-администраторам, которые до сих пор (о, ужас!) не перевели системные часы своих серверов, позволив умным машинам установить зимнее время. Да, конечно, мы-то с Вами к таким не относимся и вовремя пропатчили свою любимую ОС, под которой крутится успешно не один сайт.

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

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

Читать дальше →
Total votes 25: ↑20 and ↓5 +15
Views 26K
Comments 34

Dater — определяет часовой пояс, локализует и форматирует время в PHP

PHP *


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

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

И так, встречайте — Dater, и его основные возможности:

  • Биндинг форматов
  • Локализация текстов и форматов
  • Расширение списка опций форматирования
  • Автоопределение часового пояса
  • Конвертация времени с учётом часового пояса
  • Автоматическая конвертация времени в $_GET, $_POST, $_REQUEST с учётом часового пояса
  • Автоматическая конвертация часового пояса в шаблоне отправляемых данных
Читать дальше →
Total votes 41: ↑34 and ↓7 +27
Views 20K
Comments 92

Проблемы времени и часовых поясов в Android и пути их решения

System administration *
Recovery mode
Sandbox
Tutorial
Предположим, вы уже давно используете Android, а потому может показаться, что он прекрасно справляется с задачами синхронизации времени – будильники срабатывают вовремя, каких-то явных отклонений времени не наблюдается и т. д. Однако уверены ли вы полностью в том, откуда Android на самом деле получает данные о точном времени и часовых поясах? Если у вас есть хоть какие-то сомнения о том, как это работает — добро пожаловать под кат.

Читать дальше →
Total votes 20: ↑15 and ↓5 +10
Views 434K
Comments 28

Новая таймзона — новые проблемы

JavaScript *
Вернувшись из короткого отпуска, обнаружил, что админ установил новую таймзону RTZ 2. В результате некоторые браузеры стали несколько странно работать с датами. Вот, например, как выглядит декабрь 2013 года в календаре jquery ui (достаточно старая версия):



То, что следует обновляться, сомнений не вызывает, но это корпоративная среда, и не все так просто.
Полез смотреть, что происходит, и увидел странные вещи. Начал с простейшего
Читать дальше →
Total votes 29: ↑22 and ↓7 +15
Views 16K
Comments 11
1