Форум сайта python.su
FishHookЯ беру миллисекунды в UTC и изменяю их. А делаю я это для того, чтобы фоновые функции, преобразующие миллисекунды в дату, могли учесть високосный год и переходы на зимнее/летнее время. Таймзона начинает работать только после того, как основное время выяснено, и отсчитывается от него.
Поэтому, когда для отображения времени в разных таймзонах, ты изменяешь количество миллисекунд, ты совершаешь ошибку, ты буквально изменяешь время, о чем тебя не просили.
FishHookНо в такой дате есть как методы получения часов/дней в таймзоне, так и методы получения часов/дней в UTC, которые для всех таймзон одинаковые.
Поэтому в каком формате ты не передавай дату с сервера, ЖС создаст дату в таймзоне браузера.
FishHookТы передаёшь всё в UTC и только при принятии переводишь в свою таймзону. Это то же самое, что с эндианством, - для передачи выбирается определённый формат (big-endian), а потом на концах преобразуется в соотвествии с архитектурами.
Но теперь мне надо заняться переводом московского времени в якутское!
FishHookДаже преобразовывать ничего не надо. Ты принял в UTC и можешь не преобразовывать его. Оно само отобразится в таймзоне, взятой с компа.
Но и хрен бы с ним, но если я поступлю по твоей методе, просто возьму и прихреначу пару часов к дате, то я получу другое время
FishHookВ UTC он должен отправить. Если он попадёт в будущее - это его проблемы. Не надо было менять время. У него, на его стороне должен стоять предохранитель от этого.
либо придется заниматься какими-то преобразованиями до отправки.
FishHookЧасовых поясов определённое количество и они делятся равномерно. Точка отсчёта - нулевой меридиан в Лондоне.
Это смещение времени, привязанное к географическим координатам и времени абсолютному.
FishHookНужно выбрать стабильную точку отсчёта. Миллисекунды в UTC - что может быть стабильнее?
Если ты думаешь, что на этом нельзя потерять солидно денежек, ты ошибаешься.
FishHookЯ не мог ошибиться, потому что это доказывается индуктивно. То есть мы можем доказать, что: 1) малое элементарное расстояние в миллисекундах соответствует правильному ответу; 2) прибавление к малому расстоянию в миллисекундах ещё шага в миллисекундах также соответствует правильному ответу; 3) мы можем индуктивно расширить шаг индукции и доказать для любого расстояния в миллисекундах, что оно соответствует правильному ответу.
Ты ошибся на три часа!
Отредактировано py.user.next (Окт. 11, 2017 07:38:58)
Офлайн
Ты слушаешь меня вообще или нет?
py.user.nextМне нах…й не нужна таймзона, взятая с компа, мне нужна таймзона Петропавловска-Камчатского, когда я нахожусь в Калининграде. Слишком сложная концепция что ли?
Оно само отобразится в таймзоне, взятой с компа.
Я не мог ошибиться
Офлайн
FishHookНу распечатай себе все таймзоны относительно UTC, назначь им имена и пользуйся. Я сложности вообще не вижу.
мне нужна таймзона Петропавловска-Камчатского, когда я нахожусь в Калининграде
FishHookВот здесь ты намудрил что-то. Да и гарантии нет, что питон правильно вычисляет такие моменты. Я участвовал в исправлении нескольких багов таких (ну не кодом помогал, а анализом поведения) и были у них подобные проблемы, только там с классификацией юникодовых символов дело было. Так что то, что он может неправильно что-то считать, для меня - обычное дело, особенно если вещь специфическая.now = datetime.datetime.utcnow().replace(tzinfo=pytz.UTC).astimezone(pytz.timezone("Europe/Moscow"))
Отредактировано py.user.next (Окт. 11, 2017 07:57:46)
Офлайн
py.user.nextТипа такого?
Ну распечатай себе все таймзоны относительно UTC
Офлайн
py.user.next
Ну распечатай себе все таймзоны относительно UTC, назначь им имена и пользуйся. Я сложности вообще не вижу.
Офлайн
ShamanОни ещё могут меняться во времени. Могут условно меняться, могут физически меняться. У нас вот землетрясение было лет 10 назад, так появилась суша +100 метров (поднялась из воды и осталась).
Типа такого?
FishHookЯ не имел в виду бумагу.
Новичков за подобные умопостроения я баню за тупость.
Отредактировано py.user.next (Окт. 11, 2017 08:30:45)
Офлайн