反序列化JSON日期时区少

时间:2012-11-10 18:40:43

标签: javascript asp.net-mvc json datetime

我有一个问题,从昨天开始就破坏了我的头脑,并且不知道如何处理它。

  • 我的数据库中有一个包含以下值的日期字段:

enter image description here

  • 然后我的应用程序获取值并将其发送到我的网络表单。(值仍然相同:)那很好!!

enter image description here

  • 在客户端,我暂停了一个javascript警告以查看来自JSON的值(值仍然相同:)那很好!!

enter image description here

警报的客户端代码是:

// transaction json model
var jsonTransaction = @(Html.Raw(Json.Encode(this.Model.Transaction))); 
alert(new Date(parseInt(jsonTransaction.Date.substr(6))));
  • 现在,当我将值发送回服务器时,这就是我得到的

enter image description here

  • 最后在反序列化JSON后我的日期时间错了!而不是第7天它现在是第8天???????

enter image description here

这是反序列化的代码:

public JsonResult SaveBill(string jsonTransaction, string jsonTranDetails)
{
    _appState = this.AppState;
    JsonResult returnVal = returnVal = Json(
       new { Success = true }
    );

var transaction = JsonConvert.DeserializeObject<BillTransaction>(jsonTransaction, new JsonSerializerSettings() { NullValueHandling = NullValueHandling.Ignore });

关于如何用日期解决这个问题的任何线索,我应该得到相同的日期,因为我没有改变任何东西。希望有人可以指导我寻求解决方案。

提前致谢。

1 个答案:

答案 0 :(得分:0)

Java脚本在将日期解析为currentdate = new Date时使用通用时间(123232) 因此,当您向客户发送日期时,将其转换为ISO日期,例如 确保日期为UTC,然后再将其转换为强。

return String.Format("{0:yyyy-MM-ddTHH:mm:ss.fffZ}", dt); 

bty我已经创建了JSON Converted来覆盖任何日期序列化到客户端以使用上面的函数。