【问题标题】:What are the accepted datetime format in outlook api while creating events?创建事件时 Outlook api 中接受的日期时间格式是什么?
【发布时间】:2018-01-09 21:51:39
【问题描述】:

我正在尝试使用 Microsoft Graph API 创建一个事件。有点令人困惑的是 date type 参数,例如 startdateTimeTimeZone 类型,它有两个属性,dateTime 和 时区

 {
  "subject": "Test body event graph api ist 1",
 "start": {
      "dateTime": "2018-01-09T12:00:00",
      "timeZone": "India Standard Time"
  },
  "end": {
      "dateTime": "2018-01-09T14:00:00",
      "timeZone": "India Standard Time"
  },
}

例如,我使用了上面列出的开始和结束日期时间值。这意味着该事件的创建日期应为 2018 年 1 月 9 日,时间为 12:00:00 pm IST,而它应该以 2 结束: IST 下午 00:00。但是,如果我查看我的日历,该活动原定于 IST 上午 6:30 开始,结束于 IST 上午 8:30。我无法理解这种行为。有人可以解释一下吗? 那么dateTimetimeZone这两个参数具体是什么意思呢?什么是有效的 dateTime 接受格式?dateTime 格式是否需要与 timeZone 匹配? 有人可以解释一下这些事情吗?

【问题讨论】:

    标签: datetime outlook microsoft-graph-api datetime-format outlook-api


    【解决方案1】:

    您可以get a list of supported time zones在 Graph API 测试版中:

    GET /me/outlook/supportedTimeZones
    

    您使用的值 (India Standard Time) 是一个有效值,因此应该可以。我刚刚试了一下,它工作正常。

    请求

    POST /me/events
    
    {
      "subject": "Test India Appt",
      "start": {
        "dateTime": "2018-01-09T12:00:00",
        "timeZone": "India Standard Time"
      },
      "end": {
        "dateTime": "2018-01-09T14:00:00",
        "timeZone": "India Standard Time"
      }
    }
    

    响应(截断)

    {
      ...
      "originalStartTimeZone": "India Standard Time",
      "originalEndTimeZone": "India Standard Time",
      ...
      "subject": "Test India Appt",
      ...
      "start": {
        "dateTime": "2018-01-09T12:00:00.0000000",
        "timeZone": "India Standard Time"
      },
      "end": {
        "dateTime": "2018-01-09T14:00:00.0000000",
        "timeZone": "India Standard Time"
      },
      ...
    }
    

    当您说您查看日历时,您是如何做到的?根据您使用的客户端,显示可能已调整为不同的时区。

    例如,在 Outlook Web 客户端中,您将时区设置为特定时区,并且所有事件都相对于日历上的该时区显示。我创建此约会的测试用户将他们的时区设置为太平洋标准时间,因此当我查看日历时,我创建的事件显示为从 1 月 8 日晚上 10:30 开始到上午 12:30 结束1 月 9 日。

    Outlook 桌面客户端还显示与用户时区相关的事件,但它使用操作系统的时区,而不是依赖于自己的设置。

    【讨论】:

    • 感谢@Jason 帮助了我。创建事件时请求正文中的时区参数指定创建事件的时区以及 Outlook 客户端根据用户设置进行转换的时区?
    • @JasonJonston 在我的类似情况下,Start 日期没有像here 那样更新。我正在使用MS Graph .NET SDK。您有时间提供任何 cmets/建议吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多