Я храням часовой пояс пользователя как десятичное время в сеансе. Например, если пользователь находится в часовой зоне EST, я бы имел
UserTimeZone = -5.00;
данные в базе данных хранятся в UTC, поэтому я хочу рассчитать начало и конец дня для этого пользователя, чтобы когда пользователь Хочет его данные на определенный день, записи по часовой поясе скорректированы.
Это то, что я делаю:
DateTime StartDate = DateTime.Now.ToUniversalTime();
StartDate = StartDate.AddHours((double)UserTimeZone);
StartDate = StartDate.Date;
StartDate = StartDate.AddHours((double)UserTimeZone);
DateTime EndDate = StartDate.AddHours(24);
Проблема, имеющая, в том, что это не учитывает летнее время, поэтому даже мысль Est Time - 5 часов за UTC, на данный момент это на самом деле 4 часа позади UTC из-за летнего смещения.
Каковы некоторые из ваших предложений? Спасибо.