2016-04-15 52 views
0

我有一个自定义内容类型与.docx模板库。SharePoint:错误日期在Word模板的快速部分

我在内容类型中有一个'StartDate'和'EndDate'字段,它们被映射到.docx模板中的快速部分。

当我在项目属性中更改这两个字段的值时,它也会更新文档中的值(因为它应该是)。

问题

文档中的值总是休息一天。

例如,如果我将日期设置为15/04/2016,则会在文档上显示14/04/2016。

我该如何让他们平等?

时区和一切似乎都很好,在SharePoint和我的本地机器上。

回答

1

我相信这个问题是由SharePoint存储日期和时间值的方式造成的。从SharePoint MSDN article on Converting Date and Time Values

微软的SharePoint Foundation存储日期和协调世界时(UTC)格式的时间值,以及由对象模型的成员返回几乎所有的日期和时间值都在UTC格式。

因此,当您在本地时间在SharePoint中输入日期和时间时,SharePoint会以协调通用时间(UTC)存储该信息。但是,当Word中的映射内容控件检索日期/时间值时,它将收到UTC当量值,无论您的本地日期和时间是多少(SharePoint本身都会自动将日期和时间值转换为在其自己的用户界面中显示该信息时的当地时间) 。

我认为解决这个问题的最好方法是创建未显示的计算字段。计算的字段将从内容类型的'StartDate'和'EndDate'字段中获取输入日期/时间值,并针对您的本地UTC偏移进行更正。然后,您可以将修正后的计算值映射到Word文档中的“快速部件”。

+0

感谢@joeschwa,我在脑海中解决了这个问题,以防我不能以其他方式解决这个问题......所以我想我还能做什么?这是starnge,因为我找不到有关这个问题的任何文章......它看起来像一个常见的东西快速部分 –

+0

对不起,说似乎没有另一种选择。 UTC在任何地方都会在外部使用SharePoint日期/时间数据时创建一系列问题。我列出的MSDN文章是我见过的唯一官方微软提到的。不过有博客文章。这里有两个:[ClientSight SP Blog on UTC](http://itblog.wolthaus.net/2011/09/sharepoint-stores-dates-in-utc-time/)和[Francois Verbeeck on SP UTC](https ://francoisverbeeck.wordpress.com/2012/05/24/sharepoint-tip-of-the-day-be-careful-when-wor/)。 – joeschwa

+0

这就是我所能找到的......:D谢谢! –