MS Graph API 中的日历事件无法设置时区山区标准时间
Calendar event in MS Graph API can't set timezone Mountain Standard Time
我正在尝试构建一个 select 元素并在美国添加多个时区。
能够找到美国和加拿大的 EST、CST、PST 时区,但找不到 MST(山区标准时间,UTC-7)。
关于official document,它说timeZone
属性可以设置为Windows目前支持的任何时区。
如果我查看 windows 10 上的 date/time 设置,我可以看到 MST 时区选项。
而且如果我检查 this document,它也没有 MST 时区。
我应该只使用 Mountain Standard Time
吗?
一般来说,Microsoft Graph API 中大多数使用时区的操作都将接受任何有效的 Windows 或 IANA 时区标识符。
如果您愿意,可以随时调用 supportedTimeZones
API,以获取服务器上可用的完整列表。这在建立新时区但尚未安装的情况下可能很有用,但在大多数情况下,您可以使用任何标准列表。
Windows 时区标识符及其显示名称的列表可以通过从 Windows 命令提示符调用 tzutil /l
获得。您也可以使用 TimeZoneInfo.GetSystemTimeZones
(使用 Id
和 DisplayName
属性)从 .NET 执行此操作。
可以找到 IANA 时区标识符列表 on Wikipedia,或从其他各种来源找到。
假设您只想为美国建立时区列表(不包括美国领土),您将需要至少以下内容:
使用 Windows 个 ID:
Id Windows Display Name (English)
----------------------------------------------------------------------------
"Eastern Standard Time" "(UTC-05:00) Eastern Time (US & Canada)"
"Central Standard Time" "(UTC-06:00) Central Time (US & Canada)"
"Mountain Standard Time" "(UTC-07:00) Mountain Time (US & Canada)"
"US Mountain Standard Time" "(UTC-07:00) Arizona"
"Pacific Standard Time" "(UTC-08:00) Pacific Time (US & Canada)"
"Alaskan Standard Time" "(UTC-09:00) Alaska"
"Aleutian Standard Time" "(UTC-10:00) Aleutian Islands"
"Hawaiian Standard Time" "(UTC-10:00) Hawaii"
使用 IANA ID:
"America/New_York"
"America/Chicago"
"America/Denver"
"America/Phoenix"
"America/Los_Angeles"
"America/Anchorage"
"America/Adak"
"Pacific/Honolulu"
关于您在问题中提到的文档:
IANA 标识符列表 in the Graph API doc 不完整,恕我直言,该文档需要重写。
Windows 标识符列表 in this doc 故意不完整,因为它不是每个受支持时区的列表,而是 默认新Windows安装时按地区划分的时区。
我正在尝试构建一个 select 元素并在美国添加多个时区。
能够找到美国和加拿大的 EST、CST、PST 时区,但找不到 MST(山区标准时间,UTC-7)。
关于official document,它说timeZone
属性可以设置为Windows目前支持的任何时区。
如果我查看 windows 10 上的 date/time 设置,我可以看到 MST 时区选项。
而且如果我检查 this document,它也没有 MST 时区。
我应该只使用 Mountain Standard Time
吗?
一般来说,Microsoft Graph API 中大多数使用时区的操作都将接受任何有效的 Windows 或 IANA 时区标识符。
如果您愿意,可以随时调用 supportedTimeZones
API,以获取服务器上可用的完整列表。这在建立新时区但尚未安装的情况下可能很有用,但在大多数情况下,您可以使用任何标准列表。
Windows 时区标识符及其显示名称的列表可以通过从 Windows 命令提示符调用
tzutil /l
获得。您也可以使用TimeZoneInfo.GetSystemTimeZones
(使用Id
和DisplayName
属性)从 .NET 执行此操作。可以找到 IANA 时区标识符列表 on Wikipedia,或从其他各种来源找到。
假设您只想为美国建立时区列表(不包括美国领土),您将需要至少以下内容:
使用 Windows 个 ID:
Id Windows Display Name (English)
----------------------------------------------------------------------------
"Eastern Standard Time" "(UTC-05:00) Eastern Time (US & Canada)"
"Central Standard Time" "(UTC-06:00) Central Time (US & Canada)"
"Mountain Standard Time" "(UTC-07:00) Mountain Time (US & Canada)"
"US Mountain Standard Time" "(UTC-07:00) Arizona"
"Pacific Standard Time" "(UTC-08:00) Pacific Time (US & Canada)"
"Alaskan Standard Time" "(UTC-09:00) Alaska"
"Aleutian Standard Time" "(UTC-10:00) Aleutian Islands"
"Hawaiian Standard Time" "(UTC-10:00) Hawaii"
使用 IANA ID:
"America/New_York"
"America/Chicago"
"America/Denver"
"America/Phoenix"
"America/Los_Angeles"
"America/Anchorage"
"America/Adak"
"Pacific/Honolulu"
关于您在问题中提到的文档:
IANA 标识符列表 in the Graph API doc 不完整,恕我直言,该文档需要重写。
Windows 标识符列表 in this doc 故意不完整,因为它不是每个受支持时区的列表,而是 默认新Windows安装时按地区划分的时区。