我正在使用moment timezone进行时区计算。我从数据库中得到了一些偏移量数据,如
是否有任何方法可以从这些数据中获取时区或时区名称,例如"America/Los_Angeles"?
GMT
、GMT+1
、GMT+2
、GMT+3
和GMT+4
等。是否有任何方法可以从这些数据中获取时区或时区名称,例如"America/Los_Angeles"?
你已经尝试过http://momentjs.com/timezone/了吗?
不是100%确定,但我认为这就是你要找的。
Matt的回答是正确的,但在某些情况下,人们仍然需要从偏移量中获取最接近(而不是最准确)的时区名称。您可以使用moment-timezone
包。以下是一些TypeScript代码,用于从偏移量获取时区名称映射。
const timeZoneCache = new Map<string, string>();
const allTimeZoneNames = moment.tz.names();
const currDate = moment();
for (const timeZoneName of allTimeZoneNames) {
timeZoneCache.set(currDate.tz(timeZoneName).format("Z"), timeZoneName);
}
utcOffset
函数支持这些操作。它们只是没有真实世界时区的任何属性,例如夏令时和其他历史变化。 - Matt Johnson-Pint