Навигация по датам в мире программирования

Работая разработчиком, рано или поздно всегда сталкиваешься с одной проблемой, которая однажды появившись, не отпускает надолго.
Это та проблема, которая добавляет сотню багов и столько же задач. к проекту. Эта проблема подобна болезни, которую очень трудно вылечить.

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

Формат временной метки

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

Например, существует стандартизированный формат под названием ISO 8601, предназначенный для гармонизации представлений времени.
Он соответствует шаблону ГГГГ-ММ-ДД (например, 2023–07–05).

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

Сюжет сгущается, когда ваш проект расширяется и работает в разных регионах мира. Пользователь встречает дату как 2023-07-05.
Это интерпретируется как 5 июля 2023 г. или может быть 7 мая 2023 г.?

Давайте поможем нашим причудливым клиентам, создав формат даты, соответствующий их предпочтениям. Как насчет Месяц Д, Год?
Например, 5 июля 2023 г..

Проблема решена, верно? Не совсем!

Хотя теперь клиент может понимать дату, мы сталкиваемся с новой проблемой — нам нужно перепроектировать нашу систему, чтобы приспособить ее к этому новому формату даты и внедрить проверку параметров.

Поздравляем с предстоящими задачами для следующего спринта! 🎉

А теперь давайте серьезно и займемся этим вопросом.
В первую очередь необходимо…