diff --git a/src/Squidex.Infrastructure.MongoDb/MongoDb/BsonJsonConverter.cs b/src/Squidex.Infrastructure.MongoDb/MongoDb/BsonJsonConverter.cs index 382962a7f..d2ccafcfd 100644 --- a/src/Squidex.Infrastructure.MongoDb/MongoDb/BsonJsonConverter.cs +++ b/src/Squidex.Infrastructure.MongoDb/MongoDb/BsonJsonConverter.cs @@ -82,15 +82,15 @@ namespace Squidex.Infrastructure.MongoDb case JTokenType.Undefined: return BsonUndefined.Value; case JTokenType.Date: - return BsonValue.Create(((JValue)source).Value.ToString()); + return BsonValue.Create(((JValue)source).ToString("yyyy-MM-ddTHH:mm:ssK")); case JTokenType.Bytes: return BsonValue.Create(((JValue)source).Value); case JTokenType.Guid: - return BsonValue.Create(((JValue)source).Value.ToString()); + return BsonValue.Create(((JValue)source).ToString()); case JTokenType.Uri: - return BsonValue.Create(((JValue)source).Value.ToString()); + return BsonValue.Create(((JValue)source).ToString()); case JTokenType.TimeSpan: - return BsonValue.Create(((JValue)source).Value.ToString()); + return BsonValue.Create(((JValue)source).ToString()); } throw new NotSupportedException($"Cannot convert {source.GetType()} to Bson."); diff --git a/tests/Squidex.Infrastructure.Tests/MongoDb/BsonConverterTests.cs b/tests/Squidex.Infrastructure.Tests/MongoDb/BsonConverterTests.cs index 45e96edd2..f943ffb91 100644 --- a/tests/Squidex.Infrastructure.Tests/MongoDb/BsonConverterTests.cs +++ b/tests/Squidex.Infrastructure.Tests/MongoDb/BsonConverterTests.cs @@ -125,6 +125,18 @@ namespace Squidex.Infrastructure.MongoDb target.ShouldBeEquivalentTo(source); } + [Fact] + public void Should_serialize_to_iso() + { + source.DateTime = new DateTime(2012, 12, 12, 12, 12, 12, DateTimeKind.Utc); + source.DateTimeOffset = new DateTime(2012, 12, 12, 12, 12, 12, DateTimeKind.Utc); + + var target = JObject.FromObject(source).ToBson(); + + Assert.Equal("2012-12-12T12:12:12Z", target["DateTime"].ToString()); + Assert.Equal("2012-12-12T12:12:12Z", target["DateTimeOffset"].ToString()); + } + [Fact] public void Should_write_problematic_object() {