【问题标题】:JSON Date Serialization Issue with OpenrastaOpenrasta 的 JSON 日期序列化问题
【发布时间】:2012-01-10 08:07:02
【问题描述】:

我目前正在使用 Openrasta 开发 Rest API。

在此我将 JSON 对象中的日期传递给服务器端,例如"/Date(1316802600000)/" 表示日期 (24/09/2011),这是发送日期的标准格式。但是当我在服务器端收到这个时,这个日期会减少 1 天(23/09/2011)。因此,每次我发送一个日期时,它都会减少 1。

请为此建议我一些解决方案,如果我犯了一些错误,请告诉我。

【问题讨论】:

    标签: json rest openrasta


    【解决方案1】:

    这听起来不像是与 OpenRasta 有很大关系的问题。这很可能是 JsonhDataContractSerializer 问题,或者您的一台机器具有时区信息,但您的代码没有正确分配这些信息(例如,截断它或不使用 DateTimeOffset 或任何其他原因)。

    请从您的客户那里发布一些代码,这可能有助于诊断您的问题。

    【讨论】:

    • 我正在做 formatDate = "\/Date(" + new Date(strDate).getTime() + "+)\/" 这以获得通过 json 的有效日期格式。但是当我尝试使用 formatDate = "\/Date(" + new Date(strDate).getTime() + "+0530)\/";即通过添加+0530,我在服务器端得到了正确的日期。
    【解决方案2】:

    JsonDataContractSerializer DateTime 解析可能非常令人沮丧,尤其是在处理时区时。您可能想看看编写自己的包装 Json.NET 序列化程序的 json 编解码器。 DateTime 解析更加健壮,可以处理各种不同的 DateTime 格式。

    这是一个例子: http://gist.github.com/BobReid/8960146#file-gistfile1-cs

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-08
    • 1970-01-01
    • 2016-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-17
    • 2014-08-15
    相关资源
    最近更新 更多