public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) { if (value is DateTime) { var dt = (DateTime)value; writer.WriteStartConstructor("DateTime"); writer.WriteValue(dt.Year); writer.WriteValue(dt.Month); writer.WriteValue(dt.Day); writer.WriteValue(dt.Hour); writer.WriteValue(dt.Minute); writer.WriteValue(dt.Second); writer.WriteValue(dt.Millisecond); writer.WriteEndConstructor(); } }
public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, JsonSerializer serializer) { if (value is DateTime || value is DateTime?) { DateTime date = value is DateTime ? (DateTime)value : (value as DateTime?).Value; if (date.Equals(DateTime.MinValue)) { writer.WriteRawValue("null"); } else { string template = (date.TimeOfDay == new TimeSpan(0, 0, 0)) ? "{0},{1},{2}" : "{0},{1},{2},{3},{4},{5},{6}"; writer.WriteStartConstructor("Date"); writer.WriteRawValue( string.Format(template, date.Year, date.Month - 1, date.Day, date.Hour, date.Minute, date.Second, date.Millisecond)); writer.WriteEndConstructor(); } } }