【发布时间】:2016-07-12 16:38:05
【问题描述】:
我有一个带有实体框架的 WEB API 2 调用。如果我从使用DateTime.Now 从数据库中读取的实体更新DateTime 列,并将其序列化到客户端,则我从数据库收到的带有DateTime 的列在毫秒内有3 个数字,但是我在 C# 代码中更新的带有 DateTime 的列有 6 位数字。以下是我的控制器中的 C# 代码:
[Route("{id:long}/updatedatetime", Name = "UpdateDateTimeByID")]
[HttpPost]
[ResponseType(typeof(ClGroup))]
public async Task<IHttpActionResult> UpdateDateTimeByID(int id)
{
ClGroup clGroup = await db.ClGroups.FindAsync(id);
if (clGroup == null)
{
return NotFound();
}
clGroup.DtUpdate = DateTime.Now;
await db.SaveChangesAsync();
var groupReturn = mapper.Map<ClGroupModel>(clGroup);
return Ok(groupReturn);
}
下面是序列化回客户端的 JSON
{
"CdGroup": 1,
"NmGroup": "Grupo 1",
"DcGroup": "Primeiro Grupo",
"DtInsert": "2016-07-03T22:18:52.257",
"DtUpdate": "2016-07-12T13:31:08.2882558",
"IdStatus": true
}
有没有办法让DtUpdate 也被序列化为 3 位数字?
我使用以下配置更改了格式化程序:
var json = config.Formatters.JsonFormatter;
json.SerializerSettings.DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Unspecified;
json.SerializerSettings.DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat;
谢谢
【问题讨论】:
标签: c# json datetime serialization asp.net-web-api2