Javascript 服务器';s打开申请时要考虑的时区';来自客户端计算机的用户界面

Javascript 服务器';s打开申请时要考虑的时区';来自客户端计算机的用户界面,javascript,date,datetime,highcharts,Javascript,Date,Datetime,Highcharts,我们的应用程序是使用Java构建的,其中我们使用datetime对象获取服务器时间。但是当从javascript中使用时,我不能使用该值,因为为UI发送的值是字符串格式的(我不知道从UI使用时JSON属性值是否在ajax中保留日期类型),我想将该值用于Highcharts的pointstart,它希望该值为Number类型 所以当我从REST中获取值时,日期将是json格式,类型将是string类型。若它被转换为日期对象,那个么它将被转换回客户机 我看到了很多建议,其中一个是为当地时间添加补偿,

我们的应用程序是使用Java构建的,其中我们使用datetime对象获取服务器时间。但是当从javascript中使用时,我不能使用该值,因为为UI发送的值是字符串格式的(我不知道从UI使用时JSON属性值是否在ajax中保留日期类型),我想将该值用于Highcharts的pointstart,它希望该值为Number类型

所以当我从REST中获取值时,日期将是json格式,类型将是string类型。若它被转换为日期对象,那个么它将被转换回客户机

我看到了很多建议,其中一个是为当地时间添加补偿,我选择了这个来解决我的问题(请参阅解决方案的详细信息)。但在这个过程中,它最终被转换为本地字符串,而在pointstart的HighCharts中也没有考虑到本地字符串。如果我从Date对象中删除toLocaleString并重试,那么接收的值如下所示 “2015年10月20日星期二23:05:37 GMT+0530(IST)”其中日期值2015年10月20日星期二23:05:37(服务器时间)为PDT时间,但附加的时区值为“GMT+0530(IST)”(客户端时区)。价值是正确的,但不能考虑作为客户时区被追加。这有什么不对吗

请让我知道

代码段:

  // create Date object for current location
 var date = new Date();

// convert to msec
// add local time zone offset 
// get UTC time in msec
var utc = date.getTime() + (date.getTimezoneOffset() * 60000);

// create new Date object for different city
// using supplied offset
var newDate = new Date(utc + (3600000 * offset));

// return time as a string. But im removing this since i dont want of type string
return "The local time in " + city + " is " + newDate.toLocaleString();

JSON日期应该是ISO 8601 UTC,应该使用简单的解析函数在客户端方便地进行转换。不幸的是,浏览器不够可靠,无法使用内置的Date.parse对其进行解析。这里有很多关于如何解析ISO 8601字符串的答案,请看,您还可以使用应用时区的矩.js。谢谢你,罗布。还有一个问题。我可以从REST获取ISO 8601日期字符串,但格式为“2015-10-24T23:00:00.000-07:00”。在上面提到的线程中,预期的格式是“2013-03-10T02:00:00Z”。这就是我编写代码的方式。新建DateTime(value).toString(ISODateTimeFormat.DateTime())。这里的价值是长的。有没有办法转换成指定的格式?我尝试过使用SimpleDataFormat,但不被接受。