我的数据库中的日期存储为Utc.但当我用实体框架检索它们时,它们显示为未指定类型.
当JSON.Net序列化它们时,它们不是UTC格式.有没有办法告诉JSON.Net将DateTimes序列化为UTC,即使它们的类型没有指定为UTC?
我的数据库中的日期存储为Utc.但当我用实体框架检索它们时,它们显示为未指定类型.
当JSON.Net序列化它们时,它们不是UTC格式.有没有办法告诉JSON.Net将DateTimes序列化为UTC,即使它们的类型没有指定为UTC?
在JsonSerializerSettings
到Utc
之间设置DateTimeZoneHandling
.这将在序列化日期之前将所有日期转换为UTC.
public void SerializeObjectDateTimeZoneHandling()
{
string json = JsonConvert.SerializeObject(
new DateTime(2000, 1, 1, 1, 1, 1, DateTimeKind.Unspecified),
new JsonSerializerSettings
{
DateTimeZoneHandling = DateTimeZoneHandling.Utc
});
Assert.AreEqual(@"""2000-01-01T01:01:01Z""", json);
}