TFS 2015 Update 2内部部署 - 夏令时问题

时间:2016-11-04 15:50:24

标签: rest tfs timezone tfs2015

我们通过REST api使用TFS 2015来查找在两个日期时间之间签入的更改集:

http://internal01:8080/tfs/AppCollection/hr/_apis/tfvc/changesets?fromDate=2016-10-25T14:40:01.570&itemPath=$/HR/P1/Tempest/DevQA&api-version=1.0&toDate=2016-10-25T14:50:01.570

问题在于,在英国,我们上周完成了夏令时。

即使visual studio中的变更集显示正确的签到时间

其余的API将此项目的时间作为一小时后退(签到是上周夏令时。

"createdDate":"2016-10-25T13:49:44.573Z",

它返回更改集,这很好,但返回的值不考虑夏令时。

1 个答案:

答案 0 :(得分:1)

根据日期时间的Coordinated Universal Time (UTC)规范,API会在"祖鲁时间"或ISO 8601中返回日期

你可以说是尾随" Z"在字符串上:

"createdDate":"2016-10-25T13:49:44.573Z",
                                      ^

对于API而言,这是非常常见的事情,请记住Visual Studio Team Services中完全相同的API,它跨多个时区托管,并由多个时区的客户端访问。 / p>

在这些情况下,客户的工作是将时间转换为当地时间。

一个简单的C#/ .NET实现是:

var createdDateUtc = "2016-10-25T13:49:44.573Z";
var createdDateLocal = DateTimeOffset.Parse(createdDateUtc).ToLocalTime();
Console.WriteLine(createdDateLocal);

//Prints: 25/10/2016 14:49:44 +01:00