Дата, создаваемая new Date()
, учитывает смещение часового пояса хоста, метод toISOString - это UT C, поэтому, если хост не установлен в UT C, будет разница равно смещению часового пояса хоста. В операторе это +01: 00.
Если вы хотите, чтобы начало года было UT C, то сначала нужно сгенерировать значение времени как UT C, а затем использовать его для даты:
// Get the current UTC year
let year = new Date().getUTCFullYear();
// Create a Date avoiding the local offset
let d = new Date(Date.UTC(year, 0, 1));
// Get a UTC timestamp
console.log(d.toISOString());
Если, с другой стороны, вам нужна метка времени ISO 8601 с локальным смещением, а не UT C, что-то вроде 2020-01-01T00: 00: 00.000+ 02:00, вам придется сделать это самостоятельно или использовать библиотеку (за это , благодаря Matt JP ), см. Как отформатировать JavaScript дата .