JSON 解析日期时间



从服务器我得到这个字符串

[{"id":"9b77ff1e-350e-44d8-8860-15e80f4d8a22","code":"C","name":"0%","validFrom":"2013-07-01T00:00:00Z","validTill":null,"active":1,"vatProc":0.0,"createdAt":"2015-02-01T13:04:17.733Z","updatedAt":"2015-02-01T13:04:17.733Z"}]

在客户端,我使用 JSON.parse 将其转换为 json 对象,从而生成结果:

[
{
active:1
code:"C"
createdAt:"2015-02-01T13:04:17.733Z"
id:"9b77ff1e-350e-44d8-8860-15e80f4d8a22"
name:"0%"
updatedAt:"2015-02-01T13:04:17.733Z"
validFrom:"2013-07-01T00:00:00Z"
validTill:null
vatProc:0
}
]

正如您所期望的那样,如果它不是日期字段。

日期在服务器上转换为 UTC。

我知道我可以传递一个函数来解析函数以进行转换。我只想格式化日期,以便常规解析会"正确"地完成,如果您知道我的意思

我在网上

看到没有"正确"的方法,我在网上读到的每个案例都在客户端进行转换。

那么真的没有办法告诉常规的json解析器这是一个日期吗?

我可以选择将该日期时间转换为在服务器上可用的时间

客户端:AngularJS

服务器端:C# WCF/json

编辑:

我遇到的问题是,如果我使用例如ValidFrom作为 AngularJS 中的模型,它会抱怨它不是约会女巫,它真的不是

AngularJS 错误:

Expected `2013-07-01T00:00:00Z` to be a date

在向客户端发送日期之前,我将 DateTimeKind 属性设置为 utc

SomeObject.Date=  DateTime.SpecifyKind(SomeObject.Date, DateTimeKind.Utc);

在将任何日期保存到服务器之前,我会这样做:

SomeObject.Date=  SomeObject.Date.ToUniversalTime();

客户端的唯一要求是使用 momentjs format() 方法将日期转换为 ISO-8601

遵循此方法,JSON 始终在客户端上正确处理时间(至少到目前为止它对我来说工作正常)

这对我帮助很大

相关内容

  • 没有找到相关文章

最新更新