spo*_*rts 5 c# datetime json.net
事实:
datetime和datedatetime映射date到 C# 的DateTimedatetime专栏中,我始终存储 UTC 日期。date列,但我需要在我将拥有的新表中使用它SQL Server --> C# (server side) --> JSON (client side)我已将 JSON 序列化器设置为始终DateTime以 格式将变量返回给客户端yyyy-MM-ddThh:mm:ssZ,这对于 JavaScript 来说是一种很好的格式。末尾的 Z(“zulu”)声明它位于 UTC 时区,因此我的客户端应用程序知道它需要修复显示时区。到目前为止,所有内容都需要在显示时进行时区固定(因为所有内容都是 UTC)
因为我想开始使用 SQL Server 类型date,所以Z最终在这些date情况下会很麻烦(但在这些datetime情况下仍然需要)。由于我服务器端的所有内容都是DateTime,我不确定如何让 JSON 序列化器知道DateTime他正在查看哪种类型......
我的问题是...是否有可能知道JsonSerializerSettings他是否正在转换DateTime来自 adate或 a 的 a datetime?如果没有,解决这个问题的好方法是什么?
这是我的序列化器:
public class JsonNetResult : ActionResult
{
public Encoding ContentEncoding { get; set; }
public string ContentType { get; set; }
public object Data { get; set; }
public JsonSerializerSettings SerializerSettings { get; set; }
public Formatting Formatting { get; set; }
public JsonNetResult()
{
var isoDateTimeConverter = new IsoDateTimeConverter();
isoDateTimeConverter.DateTimeFormat = "yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'";
SerializerSettings = new JsonSerializerSettings();
SerializerSettings.Converters.Add(isoDateTimeConverter);
}
public override void ExecuteResult(ControllerContext context)
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
这就是我使用它的方式:
return new JsonNetResult()
{
Data = new
{
persons = dbContext.Persons.Select(e => new
{
name = e.Name,
someDate1 = e.SomeDate1, // datetime
someDate2 = e.SomeDate2 // date
})
}
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2499 次 |
| 最近记录: |