Информация об изменениях

Сообщение Re[3]: Имитация DateTime.Now от 12.04.2023 6:12

Изменено 12.04.2023 7:24 yenik

Re[3]: Имитация DateTime.Now
Ф>Когда я работал над тем проектом, там поддерживалась Win2k3. Поэтому .net 4.

Понятно. Уже как-то забываешь, что люди с FW до сих пор работают.
А с Core — ISystemClock. Хотя тоже необязательно. Я ещё просто делаю IDateTimeService, а в нём все нужные методы для работы с датой/временем. И DateTime.Now или UtcNow никогда в проекте напрямую не использую. Таким образом и в юнит-тестах всё с лёгкостью мокается.
А внутри реализации IDateTimeService можно или ISystemClock использовать, или DateTime.UtcNow напрямую. Поскольку инкапсулировано, это уже неважно.
И кстати местный часовой пояс лучше не из компьютера брать, а явно в конфигурации прописывать, а в DateTimeService уже все нужные преобразования реализовать. За основу всегда брать UTC.
Это для веб-сайтов. Для десктопа наверно лучше из компьютера.
Я думал ещё внедрить Noda Time
Автор: yenik
Дата: 11.03.23
, но боюсь, дикари-с, не поймут-с.
Re[3]: Имитация DateTime.Now
Ф>Когда я работал над тем проектом, там поддерживалась Win2k3. Поэтому .net 4.

Понятно. Уже как-то забываешь, что люди с FW до сих пор работают.
А с Core — ISystemClock. Хотя тоже необязательно. Я ещё просто делаю IDateTimeService, а в нём все нужные методы для работы с датой/временем. И DateTime.Now или UtcNow никогда в проекте напрямую не использую. Таким образом и в юнит-тестах всё с лёгкостью мокается.
А внутри реализации IDateTimeService можно или ISystemClock использовать, или DateTime.UtcNow напрямую. Поскольку инкапсулировано, это уже неважно.
И кстати местный часовой пояс лучше не из компьютера брать, а явно в конфигурации прописывать, а в DateTimeService уже все нужные преобразования реализовать. За основу всегда брать UTC.
Это для веб-сайтов. Для десктопа наверно лучше часовой пояс из компьютера.
Я думал ещё внедрить Noda Time
Автор: yenik
Дата: 11.03.23
, но боюсь, дикари-с, не поймут-с.