我有一个问题从昨天开始就让我头疼,不知道如何处理它。
- 我的数据库中有一个包含以下值的日期字段:
- 然后我的应用程序获取该值并将其发送到我的 Web 表单。(该值仍然相同 :) 很好!!
- 在客户端,我使用 javascript 警报中断以查看来自 JSON 的值(该值仍然相同 :) 很好!!
客户端的警报代码是这样的:
// transaction json model
var jsonTransaction = @(Html.Raw(Json.Encode(this.Model.Transaction)));
alert(new Date(parseInt(jsonTransaction.Date.substr(6))));
- 现在,当我将值发送回服务器时,这就是我得到的结果
- 最后在反序列化 JSON 之后我的日期时间是错误的!!现在是第 8 天而不是第 7 天????????
这是反序列化的代码:
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 });
关于如何用日期解决这个问题的任何线索,我应该得到相同的日期,因为我没有改变任何东西。希望有人能指导我解决问题。
提前致谢。
最佳答案
Java 脚本在将日期解析为 currentdate = new Date(123232) 时使用世界时 因此,当您将日期发送给客户时,将其转换为 ISO 日期,例如 在将日期转换为 strong 之前确保日期为 UTC。
return String.Format("{0:yyyy-MM-ddTHH:mm:ss.fffZ}", dt);
bty 我已经创建了 JSON Converted 来覆盖客户端的任何日期序列化以使用上述功能。
关于javascript - 反序列化 JSON 日期无时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13324955/