Javascript NodeJS时区不一致行为

Javascript NodeJS时区不一致行为,javascript,datetime,timezone,utc,Javascript,Datetime,Timezone,Utc,我试图解析完全指定的日期ISO字符串,然后打印相应的日期对象。我的笔记本电脑位于欧洲/柏林时区(即夏季UTC+02)。但是,当我为节点进程显式设置TZ=UTC+02env变量时,下面的脚本会产生意外的结果: // test.js const t = '2018-07-03T10:00:00.000+02:00'; console.log(t, new Date(t), new Date(t).toLocaleString()); $ TZ='UTC+02' node test.js >

我试图解析完全指定的日期ISO字符串,然后打印相应的日期对象。我的笔记本电脑位于
欧洲/柏林
时区(即夏季
UTC+02
)。但是,当我为节点进程显式设置
TZ=UTC+02
env变量时,下面的脚本会产生意外的结果:

// test.js
const t = '2018-07-03T10:00:00.000+02:00';
console.log(t, new Date(t), new Date(t).toLocaleString());

$ TZ='UTC+02' node test.js
> 2018-07-03T10:00:00.000+02:00 2018-07-03T08:00:00.000Z 2018-7-3 06:00:00 // 6 AM!!!
然后,我检查了时区偏移量(必须与UTC偏移量相反,根据),它为
TZ=Europe/Berlin
时区提供了正值
+02:00
值,为
TZ=UTC+02
时区提供了负值

const x = new Date();
const offset= -x.getTimezoneOffset();
console.log((offset>=0?"+":"")+parseInt(offset/60)+":"+offset%60);
如何解释这种行为

$ node --version  # on OS X high sierra 10.13.4 
> v8.7.0

嘿,我发现这个@t3\rry,它不能解释
欧洲/柏林
UTC+02
的偏移量差异。