Как запустить показ местного времени, когда даты хранятся в UTC - PullRequest
0 голосов
/ 26 февраля 2019

У нас есть система, которая моделирует физические местоположения по всему миру и отслеживает активность в этих местоположениях.

Мы храним все даты нашей активности в UTC в базе данных.

При отображении даты в пользовательском интерфейсе мы можем просто конвертировать, используя

TimeZoneInfo.ConvertTimeFromUtc(date, TimeZoneInfo.FindSystemTimeZoneById(timeZone));

Однако сейчас у нас появляются некоторые потребности в отчетности.Например,

Сколько действий произошло в этом месте вчера

Сколько действий произошло в этом месте на прошлой неделе

Это очень легко сделать вSQL или даже Entity Framework, если вчера означает вчера UTC.Однако вчерашние фактические значения означают вчерашний PST, например, который на 8 часов отстает от UTC.

Поэтому в настоящее время мы загружаем все действия и их даты, используя Entity Framework, конвертируем их даты и затем вычисляем отчеты.

Это не очень эффективно и, вероятно, станет неуправляемым, когда наши данные будут расти.

Должен быть лучший путь!

...