首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Sharepoint TimeZone信息转换为TimeZone

将Sharepoint TimeZone信息转换为TimeZone
EN

Stack Overflow用户
提问于 2014-03-13 20:48:53
回答 2查看 1.5K关注 0票数 2

我希望将Sharepoint TimeZone信息转换为TimeZone对象,以便与我的应用程序一起使用,该应用程序正在使用Sharepoint。我知道Sharepoint在UTC中存储所有它的时间戳,但是,当使用REST时,一些时间戳会被返回时区调整,而有些则不会。除了UTC值以"Z“结尾,而且时区调整后的值不相同外,这两种格式都是相同的。因此,很容易将这些值转换为Java对象,但如果我想始终将UTC值返回给调用方,则必须将“非DateTime”值调整为UTC。Sharepoint允许我为Sharepoint服务器获取配置好的TimeZone信息,但我需要的是从该信息到TimeZone is的映射。Sharepoint通过REST提供的内容如下所示:

描述:(格林尼治时间-07:00)山区时间(美国和加拿大)偏倚: 420日照偏倚:-60标准偏差:0

它没有提供任何信息,比如DST何时启动等,但我想只要我能够将Sharepoint“描述”映射到一个Java TimeZone id,我就不需要担心这个问题。因此,我希望以前有人遇到过这种需求,或者可能有一些其他的建议,比如如何从Sharepoint的REST中获得我需要的UTC值。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-14 03:16:58

Java使用IANA时区

Microsoft与CLDR补充数据中的IANA时区存在映射。

但是,Sharepoint时区与常规Windows时区并不完全相同。它们没有使用字符串时区键,比如在Windows注册表中找到的键(或者通过.NET的Id属性TimeZoneInfo类),而是使用特定于Sharepoint的整数in。您可以找到一个部分列表这里,以及一个更新更多的(非官方的)列表这里

Sharepoint时区描述与Windows的DisplayName不完全匹配,但并不是完美的匹配。完全可能有些Sharepoint时区不被定义为Windows时区。

假设您将每个Sharepoint SPTimeZone数字id映射到一个TimeZoneInfo id,那么您可以使用CLDR数据将其转换为IANA时区。如果您可以运行.NET代码,那么您可以很容易地使用Noda库如前所述来完成这一任务。

更新

我把这些画成了合理的等价物。这些并不能保证100%的准确性,但我认为它会给你所需要的。

它们大多使用大致等效的Windows时区进行匹配,然后使用主CLDR映射与IANA区域匹配。唯一的例外是:

  • SharePoint区域33和81是分开的,但与单一的"SA西部标准时间“窗口区域相匹配。分别定位于IANA区、America/La_Paz区和America/Manaus区。
  • SharePoint区域41和92是分开的,但与单一的"Magadan标准时间“窗口区域相匹配。分别定位于IANA区、Asia/Magadan区和Asia/Kamchatka区。
票数 3
EN

Stack Overflow用户

发布于 2014-03-18 20:10:54

我已经开始使用马特的映射,它们看起来很像。然而,我注意到,在2013年的Sharepoint上,马特提供的列表的末尾还有10个。因此,使用可爱的区带时区列表,我把这些添加到Matt的列表中,并从IANA列表中得到了我的最佳猜测(是的,最好的猜测,如果您有反馈,请告诉我)。

代码语言:javascript
复制
"SharePoint ID","SharePoint Description","IANA Time Zone"
"95","(UTC-11:00) Coordinated Universal Time-11","Etc/GMT+11"
"96","(UTC-02:00) Coordinated Universal Time-02","Etc/GMT+2"
"97","(UTC+12:00) Coordinated Universal Time+12","Etc/GMT-12"
"98","(UTC+02:00) Damascus","Asia/Damascus"
"99","(UTC+12:00) Magadan","Asia/Magadan"
"100","(UTC+03:00) Kaliningrad, Minsk","Europe/Kaliningrad"
"101","(UTC+02:00) Istanbul","Europe/Istanbul"
"102","(UTC+06:00) Dhaka","Asia/Dhaka"
"103","(UTC-03:00) Salvador","America/Bahia"
"104","(UTC+02:00) E. Europe","Europe/Chisinau"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22390575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档