title: Passing UTC DateTime to Web API HttpGet Method results in local time
body: <p>I'm trying to pass a UTC date as a query string parameter to a Web API method. The URL looks like </p>
  
  <pre><code>/api/order?endDate=2014-04-01T00:00:00Z&amp;zoneId=4
  </code></pre>
  
  <p>The signature of the method looks like</p>
  
  <pre><code>[HttpGet]
  public object Index(int zoneId, DateTime? endDate = null)
  </code></pre>
  
  <p>The date is coming in as <code>31/03/2014 8:00:00 PM</code> but I'd like it to come in as <code>01/04/2014 12:00:00 AM</code></p>
  
  <p>My <code>JsonFormatter.SerializerSettings</code> looks like this</p>
  
  <pre><code>new JsonSerializerSettings
  {
      ContractResolver = new CamelCasePropertyNamesContractResolver(),
      DateTimeZoneHandling = DateTimeZoneHandling.Utc,
      DateFormatHandling = DateFormatHandling.IsoDateFormat
  };
  </code></pre>
  
  <p>EDIT #1:
  I've noticed when I POST <code>2014-04-01T00:00:00Z</code> it will serialize to the UTC DateTime kind in C#. However I've found a work around of doing <code>endDate.Value.ToUniversalTime()</code> to convert it although I find it odd how it works for a POST but not a GET.</p>