title: Json.Net messes up timezones for DateTimeOffset when serializing
body: <p>I have looked at a lot of related questions but none of them seem to be working for me. </p>
  
  <p>I'm trying to serialize everything in UTC. Here's my code:</p>
  
  <pre><code>class Class1
  {
      static void Main()
      {
          Class2 foo = new Class2();
          JObject json = JObject.Parse(JsonConvert.SerializeObject(foo, new JsonSerializerSettings()
          {
              DateParseHandling = DateParseHandling.DateTimeOffset,
              DateFormatHandling = DateFormatHandling.IsoDateFormat,
              DateTimeZoneHandling = DateTimeZoneHandling.Utc
          }));
  
          Console.WriteLine(json.ToString());
  
          Console.Read();
      }
  }
  
  class Class2
  {
      public DateTimeOffset time = new DateTimeOffset(new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddTicks(14663484000000000));
  
      public DateTimeOffset time2 = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddTicks(14663484000000000);
  
      public DateTime time3 = new DateTime(14663484000000000);
  }
  </code></pre>
  
  <p>Here's the output:</p>
  
  <pre><code>{
      "time": "2016-06-19T08:00:00-07:00",
      "time2": "2016-06-19T08:00:00-07:00",
      "time3": "0047-06-20T15:00:00Z"
  }
  </code></pre>
  
  <p>Here's the output I'm trying to get:</p>
  
  <pre><code>{
      "time": "2016-06-19T15:00:00+00:00",
      "time2": "2016-06-19T15:00:00+00:00",
      "time3": "0047-06-20T15:00:00+00:00"
  }
  </code></pre>
  
  <p>As you can see, the <code>DateTimeOffset</code> properties are not converted at all. The <code>DateTime</code> is, but the timezone is indicated using <code>Z</code> whereas I'm trying to use <code>+00:00</code>.</p>