Pull to refresh

Comments 14

что скрывается за фразами
Реализовать что сложнее простого форматирования времени и вычисления даты с комплексными операциями (функции календаря) было чрезвычайно трудным делом.

и систему договорились назвать UTC, чтобы по буквам из обоих предложенных вариантов (C, T и U)

?
1. что-либо
2. якобы

На вычитку бы весь текст.
На КДПВ — Алтай и Новосибирск кажется(красная зона) указаны в часовом поясе +3 от Москвы, а должно быть +4 как в соседнем Красноярске(оранжевая).

Update: даже нет, вообще указано +2 от Москвы.

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


The Problem with Time & Timezones - Computerphile
А ещё в JS отсутствует, как класс, концепция локального времени, которая может значительно облегчить работу со временем в ряде ситуаций.
Ну и на сладкое — понимание всех проблем, описанных в статье + секунды координации, ведут к тому, что пересказать точное время в бедующем практически не реально.
Объект Date включает в себя toString(), toLocaleString() и их методы расширения. Но пользы от них мало, поскольку они используются, в основном, для возвращения строк на основе местного часового пояса, причём возвращаемые значения зависят от браузера и ОС.

Браузер и ОС как раз используют базу IANA, а Date.toLocaleString() позволяет указать timezone в формате IANA (а соответственно представить время в любой TZ). Так что метод очень даже полезный.


Moment — отработанная JavaScript-библиотека, почти ставшая стандартом.

В Java была JodaTime, которая тоже таскала с собой свой tzdata. И основной недостаток — это когда меняется tzdata (иногда правительство устраивает такой геморрой своим гражданам), приходится следить за всеми обновлениями и каждый раз выпускать новую версию софта. Тогда как системный tzdata приходит клиенту автоматически с обновлениями ОС.

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

Поправьте, пожалуйста, фразу «Часовой пояс в Нью-Йорке — PST (-08:00)». На самом деле там стандартно EST (-05:00), а летом EDT (-04:00). Ну и в том же абзаце ниже ещё есть PST.
Значение -540 означает, что часовой пояс на 540 минут опережает целевой. Обратите внимание на минус, хотя смещение Сеула содержит плюс (+09:00). Не знаю, почему, но отображается именно так.

Там минус потому что это значение разницы между локальным временем и UTC.


Ещё одна особенность в том, что этот метод не про информацию о часовом поясе в объекте на котором он вызывается, а про локальную для системы. И это метод не статичный потому что он возвращает разницу на основе информации про день, месяц и год на объекте даты на котором вызван (чувствуется нехватка разных объектов Date, Time и DateTime в JS).


По факту, с помощью этого метода можно узнавать историческую и текущую информацию о разнице между часовым поясом в хосте и UTC.

Еще есть luxon на замену moment.js
Меньше, приятнее в работе, современнее.

Спасибо за статью. Полезная информация вводная по устройству часовых поясов и опыте работе с ними.

Sign up to leave a comment.