Intl.DateTimeFormat() 中的 timeZone 选项究竟做了什么

What exactly does the timeZone option do in Intl.DateTimeFormat()

我很难理解 Intl.DateTimeFormat() 方法中的 timeZone 选项到底做了什么。我还找不到这方面的深入资源。任何解释将不胜感激。

背景:我们需要在前端显示后端服务器的时间戳,并且时区偏移存在一些问题。目前,我认为根据本地客户端时间显示正确时间的解决方案如下:

Intl.DateTimeFormat('en-GB', {
          hour: 'numeric',
          minute: 'numeric',
          second: 'numeric',
          timeZone: 'GMT'
        }).format(timestamp)}

我不完全明白,为什么我需要为“格林威治标准时间”传递选项 timeZone: 'GMT' 以在前端获得正确的时间。

用于计算当地时间的时区:

const timeZones = [
    "GMT",
    "Europe/Madrid",
    "Asia/Tokyo"
];
const timestamp = new Date();
let displayDate;
for (timeZone of timeZones) {
    displayDate = Intl.DateTimeFormat('en-GB', {
        hour: 'numeric',
        minute: 'numeric',
        second: 'numeric',
        timeZone: timeZone
    }).format(timestamp);
    console.log("%s @ %s", displayDate, timeZone);
}