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標識符。我無法告訴你爲什麼*不能重現問題,但也許這會有所幫助。 –