我是英格兰的一名开发人员,目前正在使用英国夏令时。
使用适用于 Office 365 邮件、日历和联系人 API 的 .Net 客户端库通过 Office 365 API 添加约会时,在 Outlook (2016) 中查看时无法取消点击约会上的时区按钮,并且时区列表始终显示 UTC
查看此图片以获取示例
当我将鼠标悬停在 Outlook 日历中的约会上时,会显示 BST 时间(如预期)。
查看此图片以获取示例
但是,当我手动将约会添加到日历时,时区按钮未被选中/单击,我可以自由地选中/取消选中该按钮。此外,当我单击该按钮时,会显示正确的时区(都柏林、爱丁堡、里斯本、伦敦)。
请注意,通过 Office 365 在线查看时约会显示正确的时间 - https://outlook.office.com/owa/
为什么会这样?
更多信息:
在 Google 上搜索了一段时间后,我确实遇到了 https://social.technet.microsoft.com/Forums/office/en-US/44093e33-133d-4de7-9f67-9ec591453bd0/calendar-meeting-time-zone-display-issue?forum=outlook
但是我在 https://outlook.office.com/owa/ 中没有看到该选项
在我的代码中,我在 Microsoft.Office365.OutlookServices.Event 上设置了以下属性:
Private Sub UpdateEvent(ByVal cEvent As [Event], ByVal tCalendar As t_Calendar)
Dim cLocation As New Location()
cLocation.DisplayName = tCalendar.sLocation
Dim cBody As New ItemBody()
cBody.ContentType = BodyType.HTML
cBody.Content = tCalendar.sDescription
cEvent.Subject = tCalendar.sSummary
cEvent.Location = cLocation
cEvent.IsAllDay = False
cEvent.Start = New DateTimeOffset(tCalendar.dtStart)
cEvent.End = New DateTimeOffset(tCalendar.dtEnd)
cEvent.Body = cBody
End Sub
我已遵循指南https://github.com/jasonjoh/office365-azure-guides/blob/master/RegisterAnAppInAzure.md在 Azure AD 中注册 Office 365 API 应用。
最佳答案
我认为我们在这里混淆了两个不同的问题。 Outlook 应用程序的此问题与 Office365 API 问题无关。如果您使用 Outlook 应用程序创建事件,如您所说,您可以更改时区,现在发送事件,然后尝试编辑该事件(在 Outlook 中),您将看到无法更改时区。所以它不仅发生在 Office365 API 上。似乎 Outlook 不允许您在设置后更改时区。
关于.net - Outlook 约会时区显示问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43113847/