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

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

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

16 ответов

9 просмотров

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

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 интересная библиотека, которую хотелось бы попробовать)

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

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

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
Кибер Бомж
8
Карта сайта