Хабр Курсы для бэкендеров
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Хранить в UTC, хранить часовой пояс пользователя (не смещение). Все вычисления делать только с помощью специализированных библиотек. В часовых поясах столько тонкостей, что руками туда лучше не лезть
В .NET вопрос часовых поясов, дат и времён, в общем-то, решён: NodaTime. От вас нужно правильно подобрать входные типы данных (в библиотеке 7 видов дат и времён), остальное вам подскажут типы.
Как я добавлял таймзоны в своего бота (и выжил)