我只是遇到了这样一种情况:在new Date(1999, 0, 1, 1, 1, 1).toISOString()
上的一个断言在ci进程(travis)中运行时导致测试失败,但是在我的本地计算机上通过。
let dString = new Date(1999, 0, 1, 1, 1, 1).toISOString();
expect(dString).to.be('1999-01-01T08:01:01.000Z');
在travis.ci上运行时,出现断言错误:
期望'1999-01-01T01:01:01.000Z'等于'1999-01-01T08:01:01.000Z'
这似乎是一个时区问题,但我不确定我理解为什么吗?在我的本地计算机上,创建新日期似乎使用了UTC + 8偏移量。
但是,在travis上运行时,好像使用UTC+0
吗?
日期时间和时区总是让我感到困惑。
我应该如何编写此测试,以便它在任何环境中都能通过
答案 0 :(得分:1)
我使用以下行在UTC中创建日期,现在它在两个平台上都通过了:
new Date(Date.UTC(1999,0,1,1,1,1)).toISOString();