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

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

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

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

1 ответ

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

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

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

DateTime против DateTimeOffset

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

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

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

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

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

Другие вопросы по тегам