javascript日期 – 保留时区偏移量

我的ISO8601日期包含时区偏移量(见下文).当我从中创建一个Date对象时,日期对象将转换为我的时区(当前为GMT),时区偏移量为0.有没有办法让Date()构造函数保留时区偏移量?
var date = new Date("2012-01-17T12:55:00.000+01:00");
  console.log(date.toString());

我得到的输出是:

"Tue Jan 17 2012 11:55:00 GMT+0000 (GMT)"

我想要的输出是:

"Tue Jan 17 2012 12:55:00"

解决方法

不是内置的 Date object,因为他们只知道本地(由用户的浏览器和/或操作系统设置定义)和UTC.您可以从该类具有的许多克隆方法中看到这一点(例如,getHours/ getUTCHours).

getTimezoneOffset是你真正拥有的唯一时区信息,但它也是本地的,并且可能只会再次给你0(或者我的情况下为6):

var date = new Date("2012-01-17T12:55:00.000+01:00");
console.log(date.getTimezoneOffset() / 60.0);

您可以尝试timezone-js(或one of its forks),但您需要知道Olson timezone name而不仅仅是GMT / UTC偏移:

var date = new new timezoneJS.Date('2012-01-17T12:55:00.000+01:00','Europe/Brussels');
alert(date.getTimezoneOffset() / 60.0); // +1

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...