【发布时间】:2014-03-13 20:48:53
【问题描述】:
我希望将 Sharepoint TimeZone 信息转换为 Java TimeZone 对象,以便与使用 Sharepoint REST API 的应用程序一起使用。我知道 Sharepoint 以 UTC 格式存储它的所有时间戳,但是在使用 REST API 时,返回的一些时间戳是时区调整的,而有些则不是。两者的格式相同,但正如您所料,UTC 值以“Z”结尾,而时区调整值则不是。因此,将它们转换为 Java DateTime 对象很容易,但如果我想始终如一地将 UTC 值返回给我的调用者,我将不得不将“非 Z”值调整为 UTC。 Sharepoint 允许我为 Sharepoint 服务器获取配置的 TimeZone 信息,但我需要的是从该信息到 Java TimeZone id 的映射。 Sharepoint 通过 REST 提供的功能如下所示:
说明:(GMT-07:00) 山区时间(美国和加拿大) 偏差:420 日光偏差:-60 标准偏差:0
它没有提供任何可能表明 DST 何时开始等的信息,但我认为只要我可以将 Sharepoint“描述”映射到 Java TimeZone id,我就不必担心这一点。因此,我希望有人之前遇到过这种需求,或者可能对我如何从 Sharepoint 的 REST API 获得所需的 UTC 值提出其他建议。
【问题讨论】:
-
大量网络搜索。 :) 我发现了类似的事情,人们试图将 Exchange TZ(在他们提供的信息和他们使用的名称方面与 Sharepoint 版本不同)映射到 Java TimeZone ids 和一个获取 Olsen 值并将它们映射到的映射器Java 时区 ID。我对微软甚至没有在他们自己的产品中遵循标准并不感到惊讶,但我很惊讶他们至少没有为应用程序开发人员提供一种将他们的非标准标识符映射到某个标准的方法。所以,除了坐下来尝试破解我自己的地图,别无其他。
-
使用 Sharepoint,您可以使用
<DateInUtc>发出请求,询问时间为 UTC(请参见:msdn.microsoft.com/en-us//library/office/…)。这样你就可以更轻松地处理它。 -
谢谢艾姆,这太诱人了。我将不得不看看这是否可以通过 GET 发送。有趣的是,对于文件条目,我可以获得 TZ 调整版本(“修改”和“创建”)和非 TZ 版本(“上次修改”和“创建”或类似的东西,我在路上 ATM 所以我没有确切的名称和位置可供参考)。但是对于文件夹,我只能获得 TZ 调整后的版本(与文件具有相同的元素名称)。无论如何,我会看看是否有一些有效负载正文选项或者我可能会使用的查询字符串中的某些内容。
标签: rest sharepoint timezone