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);
}
我很难理解 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);
}