我可以在获取用户日程表的同时直接从 microsoft graph API 获取有效格式的时区吗?

问题描述

API 示例:

我想要用户的工作时间和时区,我使用 getSchedule api 来获取

但它给出的时区与python直接不兼容

所以,我希望时区为“亚洲/加尔各答”而不是“印度标准时间”

因为我想在python中实现如下

import pytz

indian_timezone = pytz.timezone('Asia/Kolkata')

POST /users/{id|userPrincipalName}/calendar/getSchedule
Prefer: outlook.timezone="Pacific Standard Time"
Content-Type: application/json

{        
    "schedules": ["[email protected]","[email protected]"],"startTime": {
        "dateTime": "2019-03-15T09:00:00","timeZone": "Pacific Standard Time"
    },"endTime": {
        "dateTime": "2019-03-15T18:00:00","availabilityViewInterval": 60
}
{
    "@odata.context": "https://graph.microsoft.com/v1.0/$Metadata#Collection(microsoft.graph.schedule@R_774_4045@ion)","value": [
        {
            "scheduleId": "[email protected]","availabilityView": "0000000","scheduleItems": [],"workingHours": {
                "daysOfWeek": [
                    "monday","tuesday","wednesday","thursday","friday"
                ],"startTime": "08:00:00.0000000","endTime": "17:00:00.0000000","timeZone": {
                    "name": "India Standard Time"
                }
            }
        }
    ]
}

我需要时区为

 "timeZone": {
        "name": "Asia/Kolkata"
 }

我可以通过应用程序级别的凭据以任何方式获得它吗?

解决方法

您可以参考this示例中提到的point2。这是必要的,因为 Microsoft Graph 可以将时区作为 Windows 时区名称返回,而 Python DateTime 库需要 IANA 时区标识符。

希望这会有所帮助。谢谢!