0
不知何故在Docker镜像重建后,我开始遇到javascript时区问题。它曾经工作过,但在Docker镜像更新之后,不知何故,生成的Date对象不再遵守TZ设置。因此,我们的时区依赖日期字符串格式测试失败。Javascript日期在Karma测试中给出错误时区
# in the tests
console.log(new Date("2016-04-01T00:00:00.000000+00:00"));
// It is very strange it says (Asia) at the end.
// In fact, it will say whatever I put in TZ
Fri Apr 01 2016 00:00:00 GMT+0000 (Asia)
# in Chrome developer tool
console.log(new Date());
Fri Apr 01 2016 08:00:00 GMT+0800 (CST)
gulpfile.js
gulp.task('test', ['_set_tpe_timezone'], runKarmaWebpackTests);
gulp.task('_set_tpe_timezone', function() {
gutil.log('Setting timezone TZ = Asia/Taipei');
process.env.TZ = 'Asia/Taipei';
return;
});
我使用以下设置运行JavaScript测试:
- 咕嘟咕嘟+噶
- 泊坞窗容器
- 里面在gulpfile,在每次测试前执行以下设置 使用无头铬59
cat /etc/timezone
=Etc/UTC
什么是'Dockerfile'?用什么命令启动容器进行测试? –
这将真正受益于[MCVE](https://stackoverflow.com/help/mcve)。以上是一个开始,但它不是可验证的。你能给我们一些我们可以重现问题的东西吗? –
我可以告诉你的一件事是,当你在JS Date字符串中看到'(Asia)'时,这意味着'TZ'变量被解释为POSIX字符串,而不是IANA TZ标识符。我无法告诉你为什么*不能重现问题,但也许这会有所帮助。 –