这在Windows上不起作用 -请参阅
https://github.com/nodejs/node/issues/4230
问题
process.env.TZ ='UTC';在于,如果某行在此行之前运行并使用
Date,则该值将被缓存在中
Date。因此
process.env通常不适合设置时区。参见
https://github.com/nodejs/node/issues/3449
因此,更好的方法是使用实际的env变量,但是对于测试而言,它将起作用:
1.将此添加到您的package.json
"jest": { ... // depending on your paths it can also be './global-setup.js' "globalSetup": "../global-setup.js" }}2.将此文件放在package.json之外, 作为
global-setup.js
module.exports = async () => { process.env.TZ = 'UTC';};3.可选:添加测试以确保UTC执行
describe('Timezones', () => { it('should always be UTC', () => { expect(new Date().getTimezoneOffset()).toBe(0); });});正常
setupFiles并 不能正常工作 对我来说,因为它们运行太晚了(开玩笑:^ 23.5.0)。因此, 必须
使用globalSetup文件。



