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

Commit e0e7cfe

Browse files
committed
Fix 9 DateTime tests on .NET Core
1 parent f92bbc0 commit e0e7cfe

File tree

2 files changed

+38
-3
lines changed

2 files changed

+38
-3
lines changed

src/ServiceStack.Text/PclExport.NetStandard.cs

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
using ServiceStack.Text;
1111
using ServiceStack.Text.Common;
1212
using ServiceStack.Text.Json;
13+
using System.Globalization;
1314
#if NETSTANDARD13
1415
using System.Collections.Specialized;
1516
#endif
@@ -20,6 +21,34 @@ public class NetStandardPclExport : PclExport
2021
{
2122
public static NetStandardPclExport Provider = new NetStandardPclExport();
2223

24+
static string[] allDateTimeFormats = new string[]
25+
{
26+
"yyyy-MM-ddTHH:mm:ss.FFFFFFFzzzzzz",
27+
"yyyy-MM-ddTHH:mm:ss.FFFFFFF",
28+
"yyyy-MM-ddTHH:mm:ss.FFFFFFFZ",
29+
"HH:mm:ss.FFFFFFF",
30+
"HH:mm:ss.FFFFFFFZ",
31+
"HH:mm:ss.FFFFFFFzzzzzz",
32+
"yyyy-MM-dd",
33+
"yyyy-MM-ddZ",
34+
"yyyy-MM-ddzzzzzz",
35+
"yyyy-MM",
36+
"yyyy-MMZ",
37+
"yyyy-MMzzzzzz",
38+
"yyyy",
39+
"yyyyZ",
40+
"yyyyzzzzzz",
41+
"--MM-dd",
42+
"--MM-ddZ",
43+
"--MM-ddzzzzzz",
44+
"---dd",
45+
"---ddZ",
46+
"---ddzzzzzz",
47+
"--MM--",
48+
"--MM--Z",
49+
"--MM--zzzzzz",
50+
};
51+
2352
public NetStandardPclExport()
2453
{
2554
this.PlatformName = Platforms.NetStandard;
@@ -99,6 +128,12 @@ public override string GetAssemblyCodeBase(Assembly assembly)
99128
return assembly.GetName().FullName;
100129
}
101130

131+
public override DateTime ParseXsdDateTimeAsUtc(string dateTimeStr)
132+
{
133+
return DateTime.ParseExact(dateTimeStr, allDateTimeFormats, DateTimeFormatInfo.InvariantInfo, DateTimeStyles.AllowLeadingWhite|DateTimeStyles.AllowTrailingWhite|DateTimeStyles.AdjustToUniversal)
134+
.Prepare(parsedAsUtc: true);
135+
}
136+
102137
//public override DateTime ToStableUniversalTime(DateTime dateTime)
103138
//{
104139
// // .Net 2.0 - 3.5 has an issue with DateTime.ToUniversalTime, but works ok with TimeZoneInfo.ConvertTimeToUtc.

tests/ServiceStack.Text.Tests/Utils/DateTimeSerializerTests.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,9 @@ public void ToShortestXsdDateTimeString_works()
7373
? "1979-05-09T00:00:00.001Z"
7474
: "1979-05-08T23:00:00.001Z";
7575

76-
Assert.That(shortDateString, Is.EqualTo(DateTimeSerializer.ToShortestXsdDateTimeString(shortDate)));
77-
Assert.That(shortDateTimeString, Is.EqualTo(DateTimeSerializer.ToShortestXsdDateTimeString(shortDateTime)));
78-
Assert.That(longDateTimeString, Is.EqualTo(DateTimeSerializer.ToShortestXsdDateTimeString(longDateTime)));
76+
Assert.That(DateTimeSerializer.ToShortestXsdDateTimeString(shortDate), Is.EqualTo(shortDateString));
77+
Assert.That(DateTimeSerializer.ToShortestXsdDateTimeString(shortDateTime), Is.EqualTo(shortDateTimeString));
78+
Assert.That(DateTimeSerializer.ToShortestXsdDateTimeString(longDateTime), Is.EqualTo(longDateTimeString));
7979
}
8080

8181
[Test]

0 commit comments

Comments
 (0)