aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClaus Vium <cvium@users.noreply.github.com>2020-11-20 07:38:53 +0100
committerGitHub <noreply@github.com>2020-11-20 07:38:53 +0100
commit8b23c4e241f33b65a2b5013e849d09d40bf41f2a (patch)
tree55e7be802d5431deed26a58a8cfcd9a3780307fd
parent90e4066b12e3b39124f9f4efcb20a0e51499a038 (diff)
parentf557a730bb8e5b2a0906ae0c523d83e917f82c90 (diff)
Merge pull request #4519 from crobibero/datetime-iso8601
Write DateTimes in ISO8601 format for backwards compatibility.
-rw-r--r--MediaBrowser.Common/Json/Converters/JsonDateTimeIso8601Converter.cs24
-rw-r--r--MediaBrowser.Common/Json/JsonDefaults.cs1
2 files changed, 25 insertions, 0 deletions
diff --git a/MediaBrowser.Common/Json/Converters/JsonDateTimeIso8601Converter.cs b/MediaBrowser.Common/Json/Converters/JsonDateTimeIso8601Converter.cs
new file mode 100644
index 000000000..63b344a9d
--- /dev/null
+++ b/MediaBrowser.Common/Json/Converters/JsonDateTimeIso8601Converter.cs
@@ -0,0 +1,24 @@
+using System;
+using System.Globalization;
+using System.Text.Json;
+using System.Text.Json.Serialization;
+
+namespace MediaBrowser.Common.Json.Converters
+{
+ /// <summary>
+ /// Returns an ISO8601 formatted datetime.
+ /// </summary>
+ /// <remarks>
+ /// Used for legacy compatibility.
+ /// </remarks>
+ public class JsonDateTimeIso8601Converter : JsonConverter<DateTime>
+ {
+ /// <inheritdoc />
+ public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+ => reader.GetDateTime();
+
+ /// <inheritdoc />
+ public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options)
+ => writer.WriteStringValue(value.ToString("O", CultureInfo.InvariantCulture));
+ }
+}
diff --git a/MediaBrowser.Common/Json/JsonDefaults.cs b/MediaBrowser.Common/Json/JsonDefaults.cs
index 6605ae962..9a94664ac 100644
--- a/MediaBrowser.Common/Json/JsonDefaults.cs
+++ b/MediaBrowser.Common/Json/JsonDefaults.cs
@@ -42,6 +42,7 @@ namespace MediaBrowser.Common.Json
options.Converters.Add(new JsonGuidConverter());
options.Converters.Add(new JsonStringEnumConverter());
options.Converters.Add(new JsonNullableStructConverterFactory());
+ options.Converters.Add(new JsonDateTimeIso8601Converter());
return options;
}