title: c# convert datetime object to iso 8601 string
body: <p>I'm trying to convert a DateTime object to a ISO8601 string but keep getting wrong results.  I've looked around on stackoverflow, but couldn't find the right solution. </p>
  
  <p>I start with a date time string of "2017-06-26T20:45:00.070Z" which deserialized by newtonsoft from json and converted to a DateTime object in C# equivalent to : </p>
  
  <pre><code>var theTime = new DateTime(2017, 6, 26, 20, 45, 00, 70, DateTimeKind.Utc);
  </code></pre>
  
  <p>Now i need the convert that time back to it's original UTC format string to use it in another algorithm, but every conversion i try doesn't return it to that original string.  Not sure what i'm doing wrong. </p>
  
  <p>i've tried: </p>
  
  <pre><code>var newTime = theTime.UtcNow.ToString("o");
  // returns "2017-06-26T00:00:00.0000000Z"
  
  var newTime2 = theTime.Date.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ss.sssZ");
  // returns "2017-06-26T00:00:00.00Z"
  </code></pre>
  
  <p>what am i doing wrong? I want the equivalent to what js will do using toISOString()   which is what i have listed in the newTime2 date time format, but it's not showing times either. </p>
  
  <p>thanks!</p>