gpt4 book ai didi

asp.net - 使用默认序列化程序从 WebAPI 返回的 DateTime Json

转载 作者:行者123 更新时间:2023-12-03 23:59:27 26 4
gpt4 key购买 nike

我知道这个问题已经被多次散列,我阅读了很多关于该散列的帖子,但仍然感到困惑。

使用 MVC4/WebAPI,我有一个简单地创建为新 DateTime.Now 的日期时间。

我的 WebAPI 是这样返回数据的:

 HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, new
{
data = sessionRecordSmalls,
count = sessionRecordSmalls.Count,
success = true
});

其中 sessionRecordsSmall 有一个 DateTime 的公共(public)属性。

当我在 VS 调试器中查看日期时,它显示为现在,当然没有时区,因为 DateTime 不包含时区。

{10/6/2012 上午 9:45:00}

当我查看从服务器下载的内容时,我在 JSON 中看到

2012-10-06T09:45:00

我认为 T0 意味着 Timezone 0,不是 100% 肯定的。我的 JavaScript 库将其解释为时区 0,然后将下载的实际日期显示为 GMT(对我来说是 -9 小时前)。

我的问题是,下载的 JSON 是什么?这包括时区吗?我在这里错过了一些重要的步骤吗?

最佳答案

日期时间2012-10-06T09:45:00 ,我们使用 Web API 以 JSON 格式接收,默认序列化程序是 the ISO 8601格式。

事实上这就是所谓的Combined date and time representations .提炼:

..A single point in time can be represented by concatenating a complete date expression, the letter T as a delimiter, and a valid time expression. For example "2007-04-05T14:30"...



这种格式没有时区信息。如 Time zone designators 中所述提炼:

Time zones in ISO 8601 are represented as local time (with the location unspecified), as UTC, or as an offset from UTC. If no UTC relation information is given with a time representation, the time is assumed to be in local time.



换言之,如果没有指定与 UTC 的偏移量,则将其视为本地时间。

UTC format将扩展为 Z在末尾

If the time is in UTC, add a Z directly after the time without a space. Z is the zone designator for the zero UTC offset. "09:30 UTC" is therefore represented as "09:30Z" or "0930Z". "14:45:15 UTC" would be "14:45:15Z" or "144515Z".



UTC 时间也称为“祖鲁”时间,因为“祖鲁”是“Z”的北约拼音字母词。

因此,我们收到的日期时间是 ISO 8601 格式,被视为本地时区(没有 Z 在末尾这样 2012-10-06T09:45:00Z )

关于asp.net - 使用默认序列化程序从 WebAPI 返回的 DateTime Json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16697346/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com