When trying to convert date/time from string to DateTime, I’m not getting the correct value.
DateTime testDate = DateTime.ParseExact("2012-08-10T00:51:14.146Z", "yyyy-MM-ddTHH:mm:ss.fffZ", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal);
And my result is 2012-08-09 8:51:14 PM. Why is it being offset? I just want it to be the same value going in.
You are parsing the UTC date but the DateTime.Kind is local.
You should parse with DateTimeStyles.AdjustToUniversal to mark the Kind as Utc.