ich ein Datum serialisiert als String haben "2012-06-20T13: 19: 59.1091122Z"Datetimeconverter von UTC String Umwandlung
die DateTimeConverter benutzen, wird dies zu einem Datetime-Objekt umgewandelt {22: 49: 59,1091122} mit der Kind Eigenschaft auf "Local" festgelegt.
z. Der folgende Test fehlschlägt:
private static readonly DateTime UtcDate = new DateTime(634757951991091122, DateTimeKind.Utc);
private const string UtcSerialisedDate = "2012-06-20T13:19:59.1091122Z";
[Test]
public void DateTimeConverter_Convert_From_Utc_String()
{
// Arrange
var converter = TypeDescriptor.GetConverter(typeof(DateTime));
// Act
var result = converter.ConvertFrom(UtcSerialisedDate);
// Assert
Assert.AreEqual(UtcDate, result);
Assert.AreEqual(DateTimeKind.Utc, ((DateTime)result).Kind);
}
ich ein bisschen davon überrascht bin ... ich erwartet hätte, dass das Objekt Datetime durch den Wandler zurück in UTC wäre.
Die Dokumente sagen, dass DateTimeConverter DateTime.Parse verwendet, aber ich vermute, es darf die Option DateTimeStyles.RoundtripKind nicht verwenden.
Gibt es einen Weg um dies zu umgehen?