Определение начала дня с часовыми поясами и летним светом

Я храням часовой пояс пользователя как десятичное время в сеансе. Например, если пользователь находится в часовой зоне 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 из-за летнего смещения.

Каковы некоторые из ваших предложений? Спасибо.

8
задан frenchie 16 September 2011 в 22:54
поделиться