基本分析时区解决方案

时间:2019-01-24 19:53:48

标签: c# database asp.net-core globalization

我为网站创建了一些基本分析。 注册用户拥有自己的页面。我为他们提供了一些页面浏览量的基本分析:浏览量,引荐来源网址,浏览器,操作系统和国家/地区。用户可以按小时,天,周,月和全部进行过滤。 我汇总当天的所有视图,然后汇总本月的所有视图。 我的问题是数据正在使用UTC时区存储,直到我开始聚合数据为止都还可以。例如。 UTC日与EST日不同,这意味着按周,月和所有时间过滤时,对于UTC时区以外的用户,分析不正确。

我汇总视图的原因是为了使views表不会太大。当天的所有视图都被压缩到特定页面的一行中,然后再次被压缩到一个月的一行中。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

为什么不使用DateTimeOffset?

DateTimeOffset考虑瞬时时间。

Instantaneous time

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

DateTime vs DateTimeOffset

  

DateTimeOffset结构表示日期和时间值,   以及表示该值相差多少的偏移量   来自UTC。因此,该值始终明确标识一个   时间点。

     

DateTimeOffset类型包括以下所有功能:   DateTime类型以及时区识别。这使其适合   对于执行以下操作的应用程序:

     

唯一且明确地标识单个时间点。的   DateTimeOffset类型可用于明确定义   “现在”,记录交易时间,记录系统时间或   应用程序事件,并记录文件的创建和修改   时间。

     

执行常规日期和时间算术。

     

保留多个相关时间,只要这些时间存储为   两个单独的值或作为结构的两个成员。