【发布时间】:2016-11-03 14:52:20
【问题描述】:
我创建了一个逻辑应用程序,它使用 get-item 操作从 SharePoint Online 读取数据。
但是 - 我有一个 Date-Only 类型的 sharepoint-column,它显然只返回日期部分(正如 date-only 所暗示的那样)。
问题是,sharepoint 在内部使用日期时间(UTC!)来存储日期。因此,当我在本地时间(CET!)中创建一个日期为“2016-10-20”的共享点条目时,它存储为2016-10-19T22:00.00Z。
所以现在 logic-app-action 正在发送一个 rest-call,它将返回 2016-10-19。那么我应该如何获得我的原始日期呢?即使我将响应视为 UTC 并将其转换为我的本地时间(使用天蓝色函数),我也会得到 2016-10-19T02:00.00 而不是 2016-10-20T02:00.00
【问题讨论】:
-
你的代码在哪里?你是如何设置日期的?您很可能正在发送服务器必须在保存之前更改的本地日期时间值 (DateTimeKind.Local)。即使 SP 保存了本地时间,如果服务器的时区与您的代码不同,您仍然会收到相同的错误。使用
ToUtc与DateTimeKind.UTC创建一个值,或使用DateTimeOffset以避免任何歧义 -
顺便说一句,我认为 SP 的服务使用 ISO8601(相当于 datetimeoffset),这意味着当本地
DateTime转换为2016-10-20T00:00:00+02:00时,您的代码修改了时间 - ISO8601 中的正确本地时间格式 -
我正在 SharePoint-UI 中编辑 SharePoint 列表项。这是我从 logic-app-action 得到的响应:“body”:{ [...为简洁而减少 ...]“orderdate”:“2016-10-19”}
标签: rest azure sharepoint azure-logic-apps