2024 08 25 решённые проблемы человечества
(083/100) решённые проблемы человечества / 1
Сегодня будет про что-то насущное. Выбор пал на таймзоны. Разработчики договорились и решили, что это решённая проблема - мы храним даты как секунды с 1 января 1970 года (и теперь нас ждёт проблема 2038 года), а таймзоной считаем UTC.
Дальше всё просто, на клиенте прибавляем смещение и становится прекрасно. До тех пор, пока мы не в Эстонии. Там за сто лет время менялось с +1:39 до +3, и потом обратно до +1. И следовательно в тот момент когда нам надо вывести две даты для клиента начинается чехорда - в UTC получаем чёткое время часов, а в человечьем виде они куда-то теряются.
Дальше больше. у нас ещё есть летнее/зимнее время, чтобы электричество сэкономить. И есть Китай, где на всю страну один часовой пояс, который к этому как-то адаптируется. Радует только то, что велосипедами заниматься не приходиться и есть готовая база со всеми этими изменениями https://www.iana.org/time-zones. Она же встроена в большинство языков программирования.
На пост натолкнуло написать, что в некоторых языках решили что проблема не решена - https://docs.timetime.in/blog/js-dates-finally-fixed/.
И не могу не оставить классический ролик - https://www.youtube.com/watch?v=-5wpm-gesOY.
#марафон @chernov_sharit