【问题标题】:Which time zone will be used; SharePoint site regional setting time zone OR the Azure web app time zone将使用哪个时区; SharePoint 网站区域设置时区或 Azure Web 应用时区
【发布时间】:2020-09-25 01:25:02
【问题描述】:

我为我们的 SharePoint 在线网站开发了一个远程事件接收器,远程事件接收器托管在 azure Web 应用程序中。现在在远程事件接收器中,我得到了 DateTime 字段的值,如下所示:-

DateTime approveDate = (DateTime)projectItem["ApproveDate"];

所以我不确定哪个时区将用于呈现 DateTiem; SharePoint 区域设置的时区是:-

或 azure web 应用位置的时区:-

现在,如果在我的远程事件接收器代码中,我写了这段代码System.TimeZone.CurrentTimeZone.StandardName,我将得到Coordinated Universal Time

【问题讨论】:

    标签: sharepoint timezone azure-web-app-service


    【解决方案1】:

    一些事情:

    • 不要使用System.TimeZone 类。它已被替换为System.TimeZoneInfo。当前时区为System.TimeZoneInfo.Local

    • Azure Web 应用的位置指的是托管它的 Azure 区域。它与时区无关。

    • Azure 中的默认时区是 UTC(协调世界时)。在大多数情况下,您不应该更改它。相反,您应该使用 TimeZoneInfo 类中的方法在应用程序代码中处理时区转换。

    • 如果您必须更改服务器的时区,Azure 应用服务允许在 WEBSITE_TIME_ZONE 字段中使用配置值。 See these docs for details. 如果你绝对不能修改代码,这只能作为最后的手段。

    • 在您显示的代码中,时区没有相关性。您只是将DateTime 值从一个地方复制到另一个地方。这实际上取决于您如何将值放入您的 projectItem 字典开始。它还取决于向您的代码发送 的值。您应该进行一些调试以查看实际得到的结果。请务必检查Kind 属性以及日期和时间。

    • 在您显示的 SharePoint 屏幕截图中,我相信时区仅在 SharePoint 中使用。您必须进行试验以查看它是否会影响发送到您的代码的值。但是,区域语言环境绝对不会影响时区。区域设置和时区是正交概念。

    【讨论】:

    • 非常感谢您的有用回复。那么情况可能如下,因为在我的 SharePoint 区域设置中,我使用的是 GMT+4 时区,而 azure 使用的是 UTC,然后在我的代码中,当projectItem["ApproveDate"] 等于假设30/09/2020 00:00:00 时,它将显示在里面我的代码为29/09/2020 20:00:00?
    • 这取决于很多。试试看,看看你会得到什么。如果确实是这样,您可以使用TimeZoneInfo.ConvertTime 和类似方法进行转换。
    • 您的意思是将日期时间从 GMT+4 转换为 UTC?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-11
    • 2011-12-05
    • 1970-01-01
    • 2014-11-16
    相关资源
    最近更新 更多