我们目前正在探索向用户显示带有时区的时间戳,并决定采用该Intl.DateTimeFormat
选项timeZoneName: "shortOffset"
,但我们现在注意到不同语言之间的值是不同的。
当我在 Chrome 中运行此代码片段时,以不同的语言打印时区:
["it-IT", "da-DK", "de-DE", "en-GB", "es-ES", "pl-PL", "fr-FR", "sv-SE", "nl-NL", "nb-NO", "el-GR", "fi-FI", "pt-PT", "cs-CZ", ].forEach((l) => {
const tz = Intl.DateTimeFormat(l, {
timeZone: "Asia/Kolkata",
timeZoneName: "shortOffset",
})
.formatToParts(new Date())
.find((p) => p.type === "timeZoneName").value;
console.log(l, tz);
});
我得到这个结果:
语言 | 时区 |
---|---|
信息技术 | 格林威治标准时间+5:30 |
达-DK | 格林威治标准时间+5.30 |
去-DE | 格林威治标准时间+5:30 |
英文 | 格林威治标准时间+5:30 |
es-ES | 格林威治标准时间+5:30 |
聚磷酸酯 | 格林威治标准时间+5:30 |
fr-FR | UTC+5:30 |
SV-SE | 格林威治标准时间+5:30 |
nl-NL | 格林威治标准时间+5:30 |
nb-NO | 格林威治标准时间+5:30 |
el-GR | 格林威治标准时间+5:30 |
FI-FI | UTC+5.30 |
pt-PT | 格林威治标准时间+5:30 |
cs-CZ | 格林威治标准时间+5:30 |
因此,由于某种原因,法语和芬兰语使用标签 UTC,而所有其他测试的语言都使用 GMT。
我真的很想知道这背后的原因。有没有什么文档或数据库可以让我找到不同语言的配置Intl.DateTimeFormat
?