Asp.net mvc 防止JsonResult自动格式化日期
我正在编写一个基于云的程序,利用UTC将日期保存到服务器,并在往返过程中将其转换回。问题是,我在云中的实例正在根据获取结果的浏览器上的本地化设置自动转换JsonResult datetime值 为了确保两个级别上的服务器端代码都返回正确的数据,我已经经历了很多步骤,并且在所有实例上都返回了正确的数据,而且我的页面上也没有Javascript代码进行更改(为了以防万一,我甚至删除了我所有的Javascript日期格式),我用Firebug跟踪以确定它更改的确切点,当我的页面从我的JsonResult方法接收Json结果时。正如我所说,在发送到页面之前,我已经调试了这些值,它们是正确的,在我的响应中,它们会根据浏览器位置进行修改 有没有人有过类似的问题 返回值:日期(1341792000000)2012年8月7日17:00 应为:日期(1341817200000)(2012年9月7日上午12:00) 谢谢也许用你试过Asp.net mvc 防止JsonResult自动格式化日期,asp.net-mvc,json,datetime,azure,cloud,Asp.net Mvc,Json,Datetime,Azure,Cloud,我正在编写一个基于云的程序,利用UTC将日期保存到服务器,并在往返过程中将其转换回。问题是,我在云中的实例正在根据获取结果的浏览器上的本地化设置自动转换JsonResult datetime值 为了确保两个级别上的服务器端代码都返回正确的数据,我已经经历了很多步骤,并且在所有实例上都返回了正确的数据,而且我的页面上也没有Javascript代码进行更改(为了以防万一,我甚至删除了我所有的Javascript日期格式),我用Firebug跟踪以确定它更改的确切点,当我的页面从我的JsonResul
date.toLocaleString()
或者,
您可以创建一个新的
Date
对象并使用Date.setUTC
我的应用程序经过多次修改,最终得到了正确的结果。我做了很多事情让这一切发生。。。首先,我实现了timezone.JS,以获取应用程序中将使用的时区列表,并使用jstz获取加载页面的浏览器的当前时区。接下来,我必须(对于mvc)创建一个文件获取方法,该方法访问时区以加载到timezoneJS中
接下来,在保存时区时,我将pst指定为类型,然后在往返时转换回utc以更新接口
在格式化Json日期时,我运行timezoneJS方法,从jstz获取时区名称,并设置新的日期值,如下所示:
var timezone = jstz.determine();
timezoneJS.timezone.zoneFileBasePath = '/Item/GetTz'; // get file method
var dt = new timezoneJS.Date(parseInt(jsonDate.substr(6), timezone.name())); // strips out date from json date
dt.setTimezone('America/Los_Angeles');
这允许在任何服务器上运行云上项目,并在任何浏览器中显示,而不考虑时区,允许用户以本机方式查看和配置时区敏感数据,并允许用户查看可配置数据库值的开始/结束日期。您是说自动转换为本地时间还是格式化?在服务器上获取发送日期或将某些内容发送回客户端时,会发生不必要的行为吗?我也会选择删除azure标签。这是一个基于azure云的问题,这就是为什么我用azure标记它。返回JsonResult时发生问题。。。发送到客户端之前服务器上的所有值都是准确的。。。但是,当JsonResult返回我的对象时,它们包含基于浏览器与服务器的本地差异而修改的日期时间。无论加载页面的浏览器位于何处,我都需要为特定时区设置日期格式,这是我需要解决的基本问题。您是否查看了或?我仍然认为这与Azure无关,只是一个“正常”的JSON/JavaScript问题。您介意添加firebug中得到的值、返回的值和期望值吗?返回的值:Date(1341792000000)07/08/2012 17:00,应该是Date(1341817200000)(07/09/2012 12:00AM)。不幸的是,没有,我已尝试使用此值将其指定为“local”,“unspecified”和“utc”以及所有三个都产生相同的结果。是否希望它是MM/DD/YYYY XX:YY AM/PM格式?目前的格式是什么?