根据用户时区,时区根据UTC更改计算



我们在DB中有一个名为Recods的表。它具有以下列

Id(uniqueidentifier)
SubmittedDate(DateTime)
RecordNumber(uniqueidentifier) 

以下行表示一排记录,

Id                                        RecordNumber                    SubmittedDate
'CD458C6D-9F45-41C1-85D8-E3D8287A82B4', 'EBB5DE3A-4B14-4112-AF51-0F8367FE3383' '2016-11-02 08:27:17.300'

用户可以从任何时区提交记录。作为最佳实践的一部分,我们将DateTime保存在UTC中。因此,根据用户时区,我们将DateTime转换为UTC并保存表。

现在,我必须返回结果,作为用户日期提交的记录数量。我们必须根据用户时区返回记录。

如果用户在22nov 2016年上午22:00提交了10个记录,并且在2016年Nov 21nov的日期没有提交的记录,则用户属于IST TimeZone。在服务器端,我们将22nov 2016 01:00 AM转换为IST,并将其存储为21nov2016 09:00 pm utc

当11月24日,同一用户查询在最后5天获取记录时,我们将当前用户的偏移添加到时Zone( 5:30)以相应地提交列和获取记录。因此,我们应该获得根据用户时区提交的用户提交的正确记录。将UTC偏移到提交的日期后,我将获得正确数量的记录,即2016年22号的日期10。

当我们在日光储蓄期间的UTC偏移时,即时区从PST转换为PST到PDT,而反之亦然,则该解决方案将无法正常工作。

为了克服这一点,我们在用户提交recods

的用户表中添加了时区列

id(唯一识别符)提交的date(dateTime)Recordnumber(独特的识别仪)提交的时区(VARCHAR)

so,a)当用户查询记录来自时区时节省日光的时区并提交记录时,当节省日光时,我们没有做任何事情来抵消。

b)当从timezone中储蓄的时区中的用户查询记录并提交记录时,在这种情况下储蓄时会提交记录。

c)当从timezone中查询储蓄的时区并在这种情况下储蓄时提交记录时,我们将添加-1小时以偏移。

d)当储蓄日期储蓄的时区的用户查询记录中,当节省日光储蓄时也提交记录,我们没有做任何事情来抵消。

这种适当的处理时区/日光节省不同时区的适当方法?

注意:当通过列储蓄通过列提交的列表时,我们还将提交提交的记录,将最后两个单词作为"日光时间"像"阿拉斯加的日光时间","东部日光时间"

这里有可能在另一个时区中储蓄一个时区域,在另一个时区域不在一个时区。可能我们必须根据提交的日期和提交的时区列计算索取用户时区的偏移。

在这种情况下,我们无法将偏移量增加到已提交的日期时间,因为偏移会随着日光节省的效果而更改。

因此,用户提交记录的偏移以及提交的记录数量时的偏移可能会有所不同。这将导致记录数量不正确。

解决方案将是获取请求用户的时区,并将每个记录的每个记录的提交时间值转换为请求用户时区,然后进行按日期提交的记录数量计算。

注意:用于将日期时间转换为特定的datetime

相关内容

  • 没有找到相关文章

最新更新