2016-11-04 19 views
2

Wir verwenden TFS 2015 über das REST-api, um herauszufinden, was Änderungsmengen, wo zwischen zwei Datetimes eingecheckt:TFS 2015 Update 2 auf Prämisse - Sommer Ausgabe

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 

Das Problem ist, dass wir in Großbritannien abgeschlossen Sommerzeit letzte Woche.

Auch wenn ein changeset in Visual Studio zeigt die richtige Zeit

Der Rest API diese Elemente Zeit als eine Stunde von checkin hinter zurückkehrt (das Einchecken war letzte Woche während der Sommerzeit.

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

Es gibt den Änderungssatz zurück, der großartig ist, aber der zurückgegebene Wert berücksichtigt keine Sommerzeit.

Antwort

1

Die API gibt das Datum in "Zulu Time", oder Coordinated Universal Time (UTC), gemäß ISO 8601 speci zurück fizierung für Date Zeiten

Sie die Hinter „Z“ sein auf der Saite sagen können:

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

Dies ist eine ganz gewöhnliche Sache für die API erinnern zu tun, die genau die gleichen API ist in Visual Studio Team Service , die über viele Zeitzonen gehostet wird und auf die Clients in mehreren Zeitzonen zugreifen können.

In diesen Fällen ist es die Aufgabe des Kunden, die Zeit in Ortszeit umzurechnen.

Ein trivialer C#/NET-Implementierung ist.

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 
+0

DANKE! das nervt uns für eine Weile. Würde es als eine Antwort markieren, aber meine Punkte sind nicht hoch genug. –

+1

@MarkJohnson Ich glaube nicht, dass das Akzeptieren irgendwelche Wiederholungen erfordert (es gibt tatsächlich einen Rep IIRC). – DaveShaw

+0

ok muss missverstanden haben. Danke für die Köpfe hoch! –

Verwandte Themen