Microsoft Planner API返回startDate/dueDate的时区及纯日期提取问题
Microsoft Planner API日期时间相关问题解答
返回值中10:00的来源
该时间并非随机生成或全局固定值,是你访问的Planner关联的M365组设置的工作时段开始时间转换为UTC时间后的结果。
Planner前端仅支持选择日期维度的任务时间,后台存储时会自动将选中的日期关联到所属组设置的工作开始时间,再转换为UTC时间存入数据库,你从API拿到的就是这个UTC格式的时间戳。
常见问题解答
- 该时间是否会因不同组织/团队存在差异?
会。每个M365组都可以独立配置所属时区、默认工作开始/结束时间,组织管理员也可以修改全局默认规则,不同团队的Planner对应返回的时间值可能存在区别。 - 如何提取Planner界面实际展示的纯日期?
直接剔除时间部分确实会因时区偏移出现日期错误,正确操作如下:- 调用Graph API获取该Planner所属M365组的时区配置,接口地址为
GET https://graph.microsoft.com/v1.0/groups/{对应组ID}/settings,从返回结果中提取时区标识 - 将Planner API返回的UTC时间,转换为上述组时区的本地时间
- 取转换后时间的日期部分即可,和Planner界面展示的日期完全一致
- 调用Graph API获取该Planner所属M365组的时区配置,接口地址为
- Planner API返回的时间对应的是哪个时区?
API返回的时间为UTC时间,对应的实际业务时区为Planner所属M365组的设置时区。 - 为什么返回的时间不是零点或UTC零点?
Planner底层和Microsoft 365生态内的Outlook日历、To Do等服务打通,使用工作开始时间作为默认时间戳,是为了跨服务同步任务时不会默认排到非工作时段。即便Planner前端不展示具体时间,底层数据结构为了适配全生态的调度逻辑,也需要携带有效时间戳,因此没有使用零点作为默认值。
内容的提问来源于stack exchange,提问作者Nikolay
相关产品推荐
相关产品推荐

