diff options
| author | Claus Vium <cvium@users.noreply.github.com> | 2020-11-20 07:38:53 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-11-20 07:38:53 +0100 |
| commit | 8b23c4e241f33b65a2b5013e849d09d40bf41f2a (patch) | |
| tree | 55e7be802d5431deed26a58a8cfcd9a3780307fd | |
| parent | 90e4066b12e3b39124f9f4efcb20a0e51499a038 (diff) | |
| parent | f557a730bb8e5b2a0906ae0c523d83e917f82c90 (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.cs | 24 | ||||
| -rw-r--r-- | MediaBrowser.Common/Json/JsonDefaults.cs | 1 |
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; } |
