using System.Globalization;
public static void Main()
""date1"" : ""1939-01-08T00:00:00+01:00"",
""date2"" : ""1939-09-01T00:00:00-01:00"",
""date3"" : ""1940-07-10T00:00:00Z"",
""date4"" : ""1944-06-06T00:00:00""
JsonSerializerSettings settings = new JsonSerializerSettings();
settings.DateParseHandling = DateParseHandling.None;
settings.Converters.Add(new OffsetIgnoringDateConverter());
DateTest dt = JsonConvert.DeserializeObject<DateTest>(json, settings);
Console.WriteLine("Date1: " + dt.Date1.ToString("dd-MMM-yyyy"));
Console.WriteLine("Date2: " + dt.Date2.ToString("dd-MMM-yyyy"));
Console.WriteLine("Date3: " + dt.Date3.ToString("dd-MMM-yyyy"));
Console.WriteLine("Date4: " + dt.Date4.ToString("dd-MMM-yyyy"));
public DateTime Date1 { get; set; }
public DateTime Date2 { get; set; }
public DateTime Date3 { get; set; }
public DateTime Date4 { get; set; }
class OffsetIgnoringDateConverter : JsonConverter
public override bool CanConvert(Type objectType)
return (objectType == typeof(DateTime) || objectType == typeof(DateTime?));
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
string rawDate = (string)reader.Value;
if (rawDate == null) return existingValue;
if (rawDate.Length > 19) rawDate = rawDate.Substring(0, 19);
DateTime date = DateTime.ParseExact(rawDate, "yyyy'-'MM'-'dd'T'HH':'mm':'ss", CultureInfo.CurrentCulture, DateTimeStyles.AssumeLocal);
public override bool CanWrite
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
throw new NotImplementedException();