Основное решение для аналитики часовых поясов - PullRequest
0 голосов
/ 24 января 2019

Я создаю базовую аналитику для своего сайта. У зарегистрированного пользователя есть своя страница. Я предоставляю им некоторую базовую аналитику для просмотров страниц: количество просмотров, реферер, браузер, ОС и страну. Пользователь может фильтровать по часам, дням, неделям, месяцам и всем. Я объединяю все просмотры за день, а затем за месяц. У меня проблема в том, что данные хранятся в часовом поясе UTC, и это нормально, пока я не начну собирать данные. Например. День UTC отличается от дня EST, что означает, что аналитика неверна для пользователя вне часового пояса UTC при фильтрации по неделям, месяцам и всем.

Причина, по которой я агрегирую представления, состоит в том, что таблица представлений не становится слишком большой. Все представления за день сжимаются в одну строку для конкретной страницы, а затем снова сжимаются в одну строку за месяц.

Как я могу решить эту проблему?

1 Ответ

0 голосов
/ 24 января 2019

Почему бы не использовать DateTimeOffset?

DateTimeOffset учитывает мгновенное время.

Instantaneous time

https://docs.microsoft.com/en-us/dotnet/standard/datetime/choosing-between-datetime

DateTime против DateTimeOffset

Структура DateTimeOffset представляет значение даты и времени, вместе со смещением, которое указывает, насколько это значение отличается от UTC. Таким образом, значение всегда однозначно определяет один момент времени.

Тип DateTimeOffset включает в себя все функции Тип DateTime вместе с информацией о часовом поясе. Это делает его подходящим для приложений, которые делают следующее:

Уникально и однозначно идентифицирует один момент времени. Тип DateTimeOffset может использоваться для однозначного определения значения «сейчас», чтобы записать время транзакции, чтобы записать время системы или события приложения, а также для записи создания и изменения файлов раз.

Выполнение общей арифметики даты и времени.

Сохранять несколько связанных времен до тех пор, пока они хранятся как два отдельных значения или как два члена структуры.

...