You can try this
[JsonProperty("created_utc")]
[JsonConverter(typeof(UTCDateTimeConverter))]
public DateTime CreatedUtc { get; set; }
public class UTCDateTimeConverter : JsonConverter
{
public override object ReadJson(
JsonReader reader,
Type objectType,
object existingValue,
JsonSerializer serializer)
{
long ts = serializer.Deserialize<long>(reader);
return TimeUtils.GetMbtaDateTime(ts);
}
public override bool CanConvert(Type type)
{
return typeof(DateTime).IsAssignableFrom(type);
}
public override void WriteJson(
JsonWriter writer,
object value,
JsonSerializer serializer)
{
throw new NotImplementedException();
}
public override bool CanRead
{
get { return true; }
}
}
Another Approach which might be more easier to me
[JsonProperty(ItemConverterType = typeof(UTCDateTimeConverter))]
public DateTime CreatedUtc { get; set; }
var AllComments = JsonConvert.DeserializeObject<Comment>(json, new UTCDateTimeConverter());
public class UTCDateTimeConverter : Newtonsoft.Json.JsonConverter
{
public override bool CanConvert(Type objectType)
{
return objectType == typeof(DateTime);
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
return new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddSeconds((long)reader.Value);
}
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
throw new NotImplementedException();
}
}