本地 TFS 2015 更新 2 - 夏令时问题
TFS 2015 Update 2 on premise - Daylight saving issue
我们通过 REST 使用 TFS 2015 api 来找出在两个日期时间之间签入了哪些变更集:
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",
它正在返回更改集,这很好,但返回的值不考虑夏令时。
API 返回 "Zulu Time" 中的日期,或 Coordinated Universal Time (UTC), as per ISO 8601 日期时间规范
你可以看出字符串的尾部 "Z":
"createdDate":"2016-10-25T13:49:44.573Z",
^
这对于 API 来说是很常见的事情,请记住完全相同的 API 在 Visual Studio Team Services 中,它托管在多个时区并被多个时区的客户访问。
在这些情况下,将时间转换为本地时间是客户端的工作。
一个简单的 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
我们通过 REST 使用 TFS 2015 api 来找出在两个日期时间之间签入了哪些变更集:
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",
它正在返回更改集,这很好,但返回的值不考虑夏令时。
API 返回 "Zulu Time" 中的日期,或 Coordinated Universal Time (UTC), as per ISO 8601 日期时间规范
你可以看出字符串的尾部 "Z":
"createdDate":"2016-10-25T13:49:44.573Z",
^
这对于 API 来说是很常见的事情,请记住完全相同的 API 在 Visual Studio Team Services 中,它托管在多个时区并被多个时区的客户访问。
在这些情况下,将时间转换为本地时间是客户端的工作。
一个简单的 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