我有一个使用Microsoft JSON序列化程序的ASP.NET MVC3 Restful web服务。此服务返回包含.NET DateTime值的数据。
Silverlight客户端访问web服务,该客户端使用Newtonsoft JSON库来反序列化返回的数据。
我在客户端中获得的日期值比从服务发送的值提前了五个小时。由于我在东部时区(美国),这似乎是从服务发送的本地时间,客户端将其解释为GMT。
我的问题是:处理这种差异的好方法是什么?在微软或Newtonsoft库中有什么东西我可以设置来处理这个问题吗。比从客户收到的时间中减去5小时更优雅的东西。
感谢
首先看看这个问题(它是关于Backbone.js的,但也适用于您的问题):如何在Backbone中处理日期?
某些库(如Jackson)默认情况下将日期序列化为UNIX时间。从服务器发送的数据中如何表示日期/时间?如果它不是一个简单的整数,则应使用ISO 8601来表示,ISO 8601始终明确定义时区(或Z
表示UTC时间)。
如果时间是以文本形式从服务器发送的,但没有时区,则服务器会错误地封送它。如果时间有正确的时区,但客户端将其丢弃,则是客户端故障。