我有序列化爲一個字符串 「2012-06-20T13:19:59.1091122Z」 日期轉換DateTimeConverter從UTC串
使用DateTimeConverter,這個被轉換爲DateTime對象{22:49:59.1091122}與Kind屬性設置爲「本地」。
例如。下面的測試失敗:
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);
}
我有點驚訝於此......我會期望轉換器返回的DateTime對象將在UTC。
該文檔確實說DateTimeConverter使用DateTime.Parse,但我猜它不能使用DateTimeStyles.RoundtripKind選項。
有沒有解決這個辦法嗎?