using Newtonsoft.Json.Linq;
public static void Main()
var utc = new DateTime(2000, 1, 1, 0, 0, 0).ToUniversalTime();
var local = new DateTimeOffset(2000, 1, 1, 0, 0, 0, new TimeSpan(-12, 0, 0));
var localToUtc = local.ToUniversalTime();
var payloadAsString = $"{{ Utc: \"{utc:o}\", Local:\"{local:o}\", LocalToUtc:\"{localToUtc:o}\" }}";
Console.WriteLine(payloadAsString);
var payload = JsonConvert.DeserializeObject<Dates>(payloadAsString);
Console.WriteLine(payload.Utc == payload.Local);
Console.WriteLine(payload.Utc == payload.LocalToUtc);
Console.WriteLine(payload.Local == payload.LocalToUtc);
public DateTime Utc { get; set; }
public DateTime Local { get; set; }
public DateTime LocalToUtc { get; set; }