Javascript日期在Karma测试中给出了错误的时区
不知何故,在Docker映像重建之后,我开始遇到javascript时区问题。它以前可以工作,但在Docker图像更新之后,不知何故,生成的日期对象不再遵守TZ设置。结果,我们的时区依赖日期字符串格式化测试失败Javascript日期在Karma测试中给出了错误的时区,javascript,docker,gulp,timezone,phusion,Javascript,Docker,Gulp,Timezone,Phusion,不知何故,在Docker映像重建之后,我开始遇到javascript时区问题。它以前可以工作,但在Docker图像更新之后,不知何故,生成的日期对象不再遵守TZ设置。结果,我们的时区依赖日期字符串格式化测试失败 # 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 s
# 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
我使用以下设置运行javascript测试:
- 狼吞虎咽+因果报应
- 在Docker容器内
- 在gulpfile中,在每次测试前执行以下设置
process.env.TZ='亚洲/台北'代码>
- 使用无头镀铬59
=cat/etc/timezone
etc/UTC
什么是
Dockerfile
?什么命令用于启动容器进行测试?这将真正受益于。以上是一个开始,但无法验证。你能给我们一些重现问题的方法吗?我可以告诉你的一件事是,当你在JS日期字符串中看到(亚洲)
,这意味着TZ
变量被解释为POSIX字符串,而不是IANA TZ标识符。我不能告诉你为什么不能重现这个问题,但也许这会有所帮助。谢谢你的建议。在试图获得可复制MCVE的过程中,我发现问题出在我使用的基础图像上。我将发布此问题的答案,并将错误报告发送给phusion/baseimage团队。
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;
});
FROM phusion/baseimage
...
FROM phusion/baseimage:0.9.21
...