diff --git a/src/FsPickler.Json/JsonReader.fs b/src/FsPickler.Json/JsonReader.fs index 7049c1b7..c460e44b 100644 --- a/src/FsPickler.Json/JsonReader.fs +++ b/src/FsPickler.Json/JsonReader.fs @@ -19,6 +19,7 @@ type internal JsonPickleReader (jsonReader : JsonReader, omitHeader, isTopLevelS do jsonReader.CloseInput <- not leaveOpen jsonReader.SupportMultipleContent <- isTopLevelSequence + jsonReader.DateParseHandling <- DateParseHandling.None let isBsonReader = match jsonReader with :? Bson.BsonReader -> true | _ -> false @@ -198,7 +199,8 @@ type internal JsonPickleReader (jsonReader : JsonReader, omitHeader, isTopLevelS jsonReader.MoveNext() new DateTime(ticks, kind) else - jsonReader.ReadPrimitiveAs (omitTag ()) tag + let dt = jsonReader.ReadPrimitiveAs (omitTag ()) tag + DateTime.Parse(dt, null, DateTimeStyles.RoundtripKind) member __.ReadDateTimeOffset tag = if isBsonReader then @@ -213,8 +215,8 @@ type internal JsonPickleReader (jsonReader : JsonReader, omitHeader, isTopLevelS new DateTimeOffset(ticks, new TimeSpan(offset)) else - let dt = jsonReader.ReadPrimitiveAs (omitTag ()) tag - new DateTimeOffset(dt) + let dt = jsonReader.ReadPrimitiveAs (omitTag ()) tag + DateTimeOffset.Parse dt member __.ReadBytes tag = if not <| omitTag () then diff --git a/tests/FsPickler.Tests/FsPickler.Tests.fsproj b/tests/FsPickler.Tests/FsPickler.Tests.fsproj index abf46934..1dea5a62 100644 --- a/tests/FsPickler.Tests/FsPickler.Tests.fsproj +++ b/tests/FsPickler.Tests/FsPickler.Tests.fsproj @@ -122,6 +122,7 @@ {3ad987bf-f0fa-40bd-9dae-4af3a5fe9cc7} True +