我们的应用程序严重依赖于 javascript (jQuery)。所以有很多“应用程序/json”请求。
一段时间以来,我们一直在为日期问题苦苦挣扎,但尽管我们付出了很多努力,但我们还是无法弄清楚如何在 ASP.NET MVC 应用程序中处理它。
这是我们想要的:
- 在服务器端序列化/反序列化 DateTime 对象(最好使用 DateTimeKind.Utc)。
- 在客户端使用 Date 对象。在 UTC 中使用它。以某种方式格式化日期。
这里有问题:
日期客户端对象始终使用最终用户的时区。
JSON.stringify(new Date())
自动换档。这个问题有点帮助,但我们需要记住在将其发送到服务器之前更改日期。我们还需要记住,一旦我们这样做了,我们就需要一个转变
new Date('2012-10-19T10:23:47.778Z')
我们知道 JSON 不知道日期,但是如果有类似 JSON.parse 来解析日期会很好。我们使用 Newton Json.net 来序列化/反序列化日期,但它在 DateTimeKind.Unspecified
问题:
有没有一种优雅的方式来处理服务器和客户端上的日期?我们需要它作为整个应用程序中的一个横切事物。
升级版:
我不得不说得更清楚。在我们的应用程序中,我们不需要考虑客户时区,因为我们只使用日期进行操作。
因此,如果服务器返回2012-10-19T10:23:47.778Z'
,我们需要 Date 对象:
Fri Oct 19 2012 10:23:47 GMT+0300 (Kaliningrad Standard Time)
不是
Fri Oct 19 2012 13:23:47 GMT+0300 (Kaliningrad Standard Time)
(日期偏移)