我们通过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",
它返回更改集,这很好,但返回的值不考虑夏令时。
答案 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