title: Force DateTime.TryParse to be UTC by changing the string value input
body: <p>I have a config file that asks for a date in a specific format:</p>
  
  <pre><code>"StartDate": "2017-05-27"
  </code></pre>
  
  <p>This number gets used as follows:</p>
  
  <pre><code>DateTime startDate;
  DateTime.TryParse(MyConfig.StartDate, out startDate);
  </code></pre>
  
  <p>I realised when this ran on servers that are in different time zones, the DateTime returned may not be UTC kind and thus further operations to that DateTime, like Ticks, or something else, could cause the time to possibly get skewed.</p>
  
  <pre><code>DateTime startDate;
  DateTime.TryParse("2017-05-27", out startDate);
  
  if(startDate.Kind == DateTimeKind.Utc)
  {
      "Ohhh yeah".Dump();
  }
  else
  {
      "EH OH".Dump();
  }
  
  startDate.Dump();
  </code></pre>
  
  <p>If i change the string to <code>"2017-05-27Z"</code> it does not force it to be <code>DateTimeKind.Utc</code>... as it still outputs <em>"EH OH"</em> but interestingly the time output by the <code>startDate.Dump()</code> does indeed change by an hour, but its kind does not change :(.</p>
  
  <p>How can i force the configuration string to be correctly parsed as a UTC DateTime? (without changing the TryParse code, i am aware it has a kind specifier) - It may not be possible, but that's the question... is it :)</p>