如何通过Microsoft Outlook Graph Events API获取指定时区日历事件?
解决Microsoft Graph API返回UTC时区事件的问题
嗨,这个问题很常见,Microsoft Graph API 默认返回 UTC 时区的时间,但你可以通过在请求头里添加 Prefer 参数来指定想要的美国东部时区。
具体修改步骤
你只需要在请求的headers里新增一行Prefer字段,指定对应的时区ID即可。修改后的代码如下:
def make_api_call(method, url, token, payload = None, parameters = None): headers = { 'User-Agent' : 'python_tutorial/1.0', 'Authorization' : 'Bearer {0}'.format(token), 'Accept' : 'application/json', # 指定美国东部时区(含夏令时自动切换) 'Prefer' : 'outlook.timezone="Eastern Standard Time"' } request_id = str(uuid.uuid4()) instrumentation = { 'c... # 你的剩余代码保持不变
关键细节说明
- 这里使用的
Eastern Standard Time是Windows时区标识符,它会自动处理美国东部的夏令时切换(比如切换到EDT),不用你手动调整。 - 添加这个头后,API返回的事件
start和end字段会直接显示为美国东部时区的时间,而不再是UTC。 - 如果需要验证时区ID是否正确,你可以确认这是美国东部时区的标准写法,无需额外查找其他ID。
内容的提问来源于stack exchange,提问作者Hannan
相关产品推荐
相关产品推荐

