33 lines
1.0 KiB
C#
33 lines
1.0 KiB
C#
using Newtonsoft.Json;
|
|
using System;
|
|
using System.Globalization;
|
|
|
|
namespace TMDbLib.Utilities.Converters
|
|
{
|
|
public class TmdbPartialDateConverter : JsonConverter
|
|
{
|
|
public override bool CanConvert(Type objectType)
|
|
{
|
|
return objectType == typeof(DateTime?);
|
|
}
|
|
|
|
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
|
|
{
|
|
string str = reader.Value as string;
|
|
if (string.IsNullOrEmpty(str))
|
|
return null;
|
|
|
|
DateTime result;
|
|
if (!DateTime.TryParse(str, CultureInfo.InvariantCulture.DateTimeFormat, DateTimeStyles.None, out result))
|
|
return null;
|
|
|
|
return result;
|
|
}
|
|
|
|
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
|
|
{
|
|
DateTime? date = value as DateTime?;
|
|
writer.WriteValue(date?.ToString(CultureInfo.InvariantCulture));
|
|
}
|
|
}
|
|
} |