170 похожих чатов

Всем привет! Хотел бы узнать, кто-нибудь использовал NodaTime в продакшене?

Насколько сложно было переходить из DateTime к типам из этой бибилотеки? И почему решили переходить на эту библиотеку?

16 ответов

13 просмотров

Айрат использовал. Почему решили переходить — ну так а других нету (для ряда кейсов, когда тебе нужно что-то делать со временем).

Vasiliy- Автор вопроса
Dr. Friedrich von Never
Айрат использовал. Почему решили переходить — ну т...

А можно Айрата отметить? Хотел бы поинтересоваться насчёт процесса этого)

@omgszer, принимай пополнение!

Vasiliy
А можно Айрата отметить? Хотел бы поинтересоваться...

Если тебе надо делать что-то больше со временем, например логистика между таймзонами - то очень надо.

Vasiliy- Автор вопроса
Ayrat Hudaygulov
Если тебе надо делать что-то больше со временем, н...

Хотел бы по подробнее узнать насчёт проекта, в котором использовал, и использовали ли эту библиотеку изначально или потом перешли? Используете ли EF\Dapper или какие-то иные взаимодействия с бд, как решали эти вопросы?

Vasiliy
Хотел бы по подробнее узнать насчёт проекта, в кот...

там сразу было понятно, что стандартный инструментарий не вывезет, т.к. в нём не было банальных примитивов для работы с локальным временем и временем в таймзоне. У нас был большой модуль, который считал время доставки (и для клиента при заказе, и гораздо более точное для репортов по логистике и оценке костов). И алгоритм должен был учитывать - время окончания смены в одной таймзоне - праздники - время в полёте в целом было непросто!

Ayrat Hudaygulov
там сразу было понятно, что стандартный инструмент...

а почему не перевели всё в UTC? а уж затем переводи куда захочется, в любую таймзону

Vasiliy- Автор вопроса
Yury Schkatula
а почему не перевели всё в UTC? а уж затем перевод...

там же всё не так просто) взять те же смены зимнего\летнего времени, по-моему где-то они остались

Ayrat Hudaygulov
а ты, я вижу, эксперт!

все international-проекты делали как UTC - оно как раз при выводе в локальную DateTime как раз учитывает все смены дат и т.п.

Yury Schkatula
а почему не перевели всё в UTC? а уж затем перевод...

как мне время в UTC поможет узнать что доставка клиенту будет в 02:00 ночи по ЕГО времени?

неплохо, а там выходной

Ayrat Hudaygulov
неплохо, а там выходной

это уже другая задача - формируем окна доступности сервиса (опять же, храним в UTC)

Vasiliy- Автор вопроса

а если взять проблему сравнивания дат? то как именно будет происходить сравнивание? или просто договориться и сделать что в приложении в бэкенде у на всё в utc и мы работаем только с ним? а что для работы с отдельно датой\отдельно временем? а что если нам например нужно сравнить с днём текущим? ну и ещё как я помню там был спектр вопросов который помогает решать NodaTime upd: насчёт сравнения, мы можем сравнить 2 даты с одинаковыми тиками, но разными типами, и они будут равны, т.е. для Мск например сейчас 21:51 28.09.23 и если мы берем utc то это будет 18:51 28.09.23, и эти даты в своей сути представляют один момент времени, но в рамках DateTime важны только тики, но не типы и в этом по-моему основная претензия к DateTime. DateTime содержит 3 типа (Unspecified, Local, Utc) в рамках одной структуры, хотя каждая из них по своей логике должна работать как отдельный понятный механизм, с ожидаемым и логичным поведением upd1: а если поверх этого накатить работу с бд, реализацией сохранения\изменения\конвертации дат, то есть большой пласт вопросов, которые тоже решаются, как по мне не однозначно (хотя возможно, если изначально придерживаться позиции UTC для DateTime в рамках приложения, и написать десяток тестов, показывающих как работать с теми или иными датами\временем\датой+время, то это будет просто, но всё же NodaTime интересная библиотека, которую хотелось бы попробовать)

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Карта сайта