sharepoint日期时间问题

时间:2011-12-22 23:12:15

标签: c# asp.net sharepoint

我们在sharepoint 2010列表中有一些计算字段。

计算如下:  =DATE(YEAR(Start),MONTH(Start),1)这将返回月初。

=DATE(YEAR(Start),MONTH(Start)+1,1)-1将返回月末。

如果我们在sharepoint 2010中为设置为“关注网络设置”的用户设置了区域设置,则其功能类似于一个功能,并返回12/1/201112/31/2011

但是,如果有人想要个性化他们的日历以自动调整他们的tmie区域,他们可以点击My Settings然后点击My regional settings并相应地更改他们的时区。

但是,当发生这种情况时,上面的日期计算会从结果中减去一天,并返回11/30/2011表示开始,12/30/2011表示结束。

除了强迫每个人使用相同的时区之外,还有其他解决方法吗?

2 个答案:

答案 0 :(得分:0)

您不能只检查时区并根据代码中的swith调整计算吗?

答案 1 :(得分:0)

看起来答案是如何在SharePoint列表上计算日期和时间。使用=DATE任何类型的计算时,您实际上都在设置日期,因此通过将日期设置为12/1/2011,您实际上也将其设置为12/1/2011 12:00:00 AM。而且,当区域时间对此进行调整时,时间迫使它们回到前一天。

这不是故意的。通过为实际结果增加一些时间可以克服一些问题:

=DATE(YEAR(Start + .5),MONTH(Start + .5),1)         
=DATE(YEAR(Start - .5),MONTH(Start - .5)+1,1)-1

正如我们从上面的计算中可以看到的,.5实际上是在初始计算中增加了几个小时,如果用户想要将他们的时区设置为更自定义的东西,这会给我们提供正确的设置。

但是,这并不适用于所有时区,因为国际时区可能会超过上面.5的时差,并将其标记为将来的某一天或后一天。

但是,对我们来说,问题已得到解决,我们的用户可以再次在其区域设置中设置PSTESTCSTMST