Ayrat
я про оффсет
Ayrat
знание таймзоны очень даже полезное
Bonart
знание таймзоны очень даже полезное
Но знание таймзоны упаковать в одно значение нетривиально. Таймзоны же темпоральные
Ayrat
но это с моей колокольни бекендера
Roman
в хоспиталити таймзону нужно знать всегда
Ayrat
Ayrat
поэтому такое себе
Roman
пацантрэ, я ж не говорю, что datetimeoffset это бомба
Roman
куцая ебала
Bonart
в хоспиталити таймзону нужно знать всегда
Там локацию знать надо, и оффсета для этого безбожно мало
Roman
просто чуть менее куцая, чем обычный дейттайм
Roman
в открытые двери же стучимся ну
Ayrat
Ох уж эти полурешения от майкрософт
Bonart
пацантрэ, я ж не говорю, что datetimeoffset это бомба
Бомба - причем основное действие: репутация что она чем-то лучше обычной даты-времени.
Ayrat
сделали дату, забыли оффсет. Сделали оффсет, забыли зону
Bonart
Ох уж эти полурешения от майкрософт
Хуже чем отсутствие решения, да
Roman
зато ноду тайм поддерживают вроде везде, где надо
Ayrat
у меня ровно один раз была необходимость в нодатайм. Когда я получал данные из другой страны с ебанутой таймзоны, а была бизнес логика приёма ставок по местному времени у юзера в РФ. И это был период когда у нас то ли отменили летнее, то ли уже возвращали обратно, я не помню
Ayrat
и усугблялось фактом что в source of truth время лежало в Московском часовом поясе БЕЗ оффсета
Ayrat
то есть оно просто писалось как инстанс, и типа ты сам разберешься, летнее там или зимнее
Ayrat
Орал в подушку по ночам
Ayrat
DateTimeOffset мне там никак не помог, да. Возможно помогли бы раскалённые щипцы чтобы я покрутил ими соски того кто в БД задумал класть по московскому времени. Ну чиста моральное удовольствие
Denis
Пиздец мне тебя жалко стало даже
Dmitry
то есть заюзать сторонний тип (NodeTime) действительно бестпрактикс?
Ayrat
то есть заюзать сторонний тип (NodeTime) действительно бестпрактикс?
альтернатива - хранить таймзону самостоятельно
Ayrat
или локацию
Dmitry
понял
Ayrat
Кстати, в примере выше, с получением данных из другой страны, всего можно было бы избежать если бы те дебилы с другого конца провода использовали UTC+0, и у нас в БД хранилось в UTC+0 Но получилось что те дебилы из UK отдавали своё локальное, инстанс время (и ебись сам когда это НА САМОМ деле произошло) и наши дебилы хранили всё в инстансах. И надо было склеить их вместе чтобы понять как эти времена на самом деле соотносятся друг с другом
Ayrat
Но можно было забить хуй и просто полгода была бы ошибка в подсчёте времени
Ayrat
а сейчас, когда в обоих странах летнее/зимнее, то всего неделю
Ayrat
(у нас разница с UK в неделю в введении летнего/зимнего)
Ayrat
хуйня вопрос. Костыльнул бы (DateTime.AddHours(-3)) и хуяк впрадакшн
Ayrat
просто быть говноделом...
Denis
Самое веселье начинается когда получасовая разница а не кратная часам
Диёр
(у нас разница с UK в неделю в введении летнего/зимнего)
Никогда не задумывался что делать если в локации смеси не зимнее/летнее время, а именно что часовой пояс?
Denis
Ага
Диёр
Мы у себя в календаре это делали
Ayrat
по таймзоне всегда можно вычислить настоящий момент времени когда это произошло
Denis
Мы у себя в календаре это делали
Ну видимо я не настолько постиг дзен таймзон ( хотя у меня сейча редко такие задачи)
Диёр
И непальский +5:45 тестили, там всё ок
Ayrat
ненене, тут ещё подтягиваются пацаны с другими календарями
Ayrat
можно их нахуй послать конечно
Диёр
И непальский +5:45 тестили, там всё ок
Но когда наш пм узнал что есть времена кратные 30 и 15 минутам конечно долго дизайн обдумывали
Ayrat
https://nodatime.org/2.2.x/userguide/calendars
Диёр
А ещё без всей этой херни я бы скорее всего никогда бы и не узнал про caldav
Ayrat
внезапно можно словить интересных багулин когда тебе из израиля прилетит дата, а она блять другая в грегорианском календаре
Ayrat
а казалось бы, цивилизованная страна
Ayrat
13 месяцев
Диёр
А ещё что календарь эпла для интеграции удобен примерно как велосипедный насос для клизмы
Диёр
Ayrat
У нас сразу оговорено было что любые там марсианские и исламские календари фпизду
понимаю. Но они используются в соответствующих странах.
Ayrat
И если есть планы работать с ними, то…
Ayrat
Тот же Непал
Ayrat
Я хз что там, но есть шансы что не григорианский
Ayrat
то есть тестить одну лишь таймзону можно. Но когда тебе с той стороны отдадут дату 31ое февраля
Ayrat
...
Диёр
Ну благо у нас не по такого уровня где ещё нужно отслеживать сколько секунд решили добавить к следующему году челики из международной службы вращения земли
Диёр
А ещё как-то на проде в контейнере с постгресом время неправильное поставили
Диёр
Нормально говна поели
Диёр
Страшно представить сколько всего наебнется если захотят поменять способы учёта времени
Диёр
Справедливости ради самое болезненное со временем было на стороне фронта и ux
Roman
А вот ещё праздники есть. Вот с ними весело. Если хочется реальные бизнес дни посчитать.
Диёр
Производственный календарь юзать(
Ayrat
У нас йоба логика по подсчёту даты доставки
Ayrat
основанная на стране
Ayrat
Именно из-за праздников
Ayrat
Но праздники особенные
Ayrat
Потому что если бы ритейл не работал как в РФ 7 дней в начале января, разорился бы нахуй
Диёр
Чсх ещё любят переносить рабочие дни и праздники
Диёр
И вот в Питер 31 примерно у трети выходной, а у остальных рабочий