我正在编写一个ASP.NET MVC应用程序,它将ISO 8601中的日期发送到我的控制器。我的控制器接收日期作为参数并将其转换为日期时间。我遇到的问题是该日期增加了1小时。我写了很少的代码来复制我的问题。
这是我的控制器
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public void ShowDate(DateTime NewEventStart)
{
int x = 0; //set a breakpoint here
}
}
这是我的观点
<script src="~/Scripts/jquery-2.1.1.js"></script>
<script>
$(document).ready(function () {
//this is a date in ISO 8601 format
start = "2014-07-07T06:30:00.000Z";
UpdateEvent(start);
});
function UpdateEvent(EventStart) {
var dataRow = {
'NewEventStart': EventStart
}
$.ajax({
type: 'POST',
url: "/Home/ShowDate/",
dataType: "json",
contentType: "application/json",
data: JSON.stringify(dataRow)
});
}
</script>
当我运行上面的代码并使用调试工具检查NewEventStart的值时,它说时间已经变为07:30,我希望它可以说是06:30。
我怀疑我的机器上的某些时间设置可能会导致这种或某种时区问题?有人可以看到问题和/或修复?
答案 0 :(得分:2)
将日期字符串解析为您当地的时区。如果您想要UTC日期(即与您的视图匹配日期字符串),请在控制器操作方法中使用
NewEventStart = NewEventStart.ToUniversalTime();