Skip to content
This repository was archived by the owner on Dec 5, 2024. It is now read-only.

Commit babbd71

Browse files
Fixing date parsing for VSTS repos
1 parent 59c5a8c commit babbd71

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

src/GitHub.Api/Helpers/Constants.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,12 @@ static class Constants
1313
public const string GitTimeoutKey = "GitTimeout";
1414
public const string Iso8601Format = @"yyyy-MM-dd\THH\:mm\:ss.fffzzz";
1515
public const string Iso8601FormatZ = @"yyyy-MM-dd\THH\:mm\:ss\Z";
16+
public const string Iso8601FormatPointZ = @"yyyy-MM-dd\THH\:mm\:ss.ff\Z";
1617
public static readonly string[] Iso8601Formats = {
1718
Iso8601FormatZ,
1819
@"yyyy-MM-dd\THH\:mm\:ss.fffffffzzz",
1920
Iso8601Format,
21+
Iso8601FormatPointZ,
2022
@"yyyy-MM-dd\THH\:mm\:sszzz",
2123
};
2224
public const DateTimeStyles DateTimeStyle = DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal;

src/tests/UnitTests/Primitives/SerializationTests.cs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,25 @@ public void DateTimeSerializationRoundTrip()
3737
Assert.AreEqual(dt3, dt4);
3838
}
3939

40+
[Test]
41+
public void DateTimeSerializationRoundTripFormatPointZ()
42+
{
43+
var dt1 = DateTimeOffset.ParseExact("2018-05-01T15:04:29.00Z", new []{ Constants.Iso8601FormatPointZ }, CultureInfo.InvariantCulture, Constants.DateTimeStyle);
44+
DateTimeOffset.ParseExact("2018-05-01T15:04:29.00Z", Constants.Iso8601Formats, CultureInfo.InvariantCulture, Constants.DateTimeStyle);
45+
var str1 = dt1.ToJson();
46+
var ret1 = str1.FromJson<DateTimeOffset>();
47+
Assert.AreEqual(dt1, ret1);
48+
}
49+
50+
[Test]
51+
public void DateTimeSerializationRoundTripFormatZ()
52+
{
53+
var dt1 = DateTimeOffset.ParseExact("2018-05-01T15:04:29Z", Constants.Iso8601Formats, CultureInfo.InvariantCulture, Constants.DateTimeStyle);
54+
var str1 = dt1.ToJson();
55+
var ret1 = str1.FromJson<DateTimeOffset>();
56+
Assert.AreEqual(dt1, ret1);
57+
}
58+
4059
class TestData
4160
{
4261
public List<string> Things { get; set; } = new List<string>();

0 commit comments

Comments
 (0)