【问题标题】:Map microsoft graph timezone to moment将 microsoft graph 时区映射到时刻
【发布时间】:2019-09-03 01:11:40
【问题描述】:

我正在尝试将 microsoft graph 返回的时区映射到 moment js 更容易理解的内容。很少有时区实例,例如墨尔本时区是“澳大利亚东部标准时间”,布里斯班时区是“E”。澳大利亚标准时间”。这看起来令人困惑,我想知道是否有任何一组预定义的时区可以查看以将这些时区映射到我想要的。

我尝试过寻找https://docs.microsoft.com/en-us/graph/api/resources/datetimetimezone?view=graph-rest-1.0 和https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/default-time-zones。他们都没有'E。提到了澳大利亚标准时间。我不确定是否还有更多时区不在此列表中。

【问题讨论】:

  • 你能从 UTC 的 MS 图表中获取数据,并使用时刻按照各自的时区进行转换吗?

标签: timezone microsoft-graph-api


【解决方案1】:

dateTimeTimeZone resource type 支持以Windows time zone 格式提供timeZone 属性,而 Moment 支持 IANA 格式,Unicode CLDR project 可以用作在两者之间映射的可靠数据源。 例如,根据:

<mapZone other="AUS Eastern Standard Time" territory="001" type="Australia/Sydney"/>

请求:

GET https://graph.microsoft.com/v1.0/me/events
Prefer:outlook.timezone="AUS Eastern Standard Time"

将返回AUS Eastern Standard Time Windows 时区中对应于Australia/Sydney IANA 时区标识符的事件


另一个选项是 省略 Prefer: outlook.timezone header 从请求中,在这种情况下,dateTimeTimeZone 的值将以 UTC 格式返回。

【讨论】:

  • 谢谢,这是完美的。我目前正在获取 UTC 的所有数据,但我有一个用例,我需要根据他们的本地时区(而不是浏览器时区)来解释用户的可用性。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-12
  • 2014-06-18
  • 2011-06-25
  • 2018-12-30
相关资源
最近更新 更多