将 UTC 时间转换为特定时区客户端
Convert UTC time to specific timezone client side
是否可以使用 JavaScript 将来自服务器的 UTC 日期转换为特定的(英国)时区?这是针对用户可能配置了不正确的本地时区的情况。
您可以在传递给 toLocaleString
的选项中指定时区,这将使用 Date
对象表示的 point-in-time 创建一个本地化字符串,该字符串将转换为指定时区。
例如:
new Date("2020-09-17T17:15:00.000Z").toLocaleString('en-GB', { timeZone: 'Europe/London' })
//=> "17/09/2020, 18:15:00"
注意第一个参数是格式的语言环境,不是时区。如果您不想要特定格式,您可以传递 undefined
代替 - 这将使用用户的活动区域设置来选择格式。
另请注意,您无法获得处于该时区的 Date
对象。 Date
对象仅存储一个时间点(作为具有毫秒精度的 Unix 时间戳),它 总是 使用计算机的本地时区设置来实现其需要本地时间的功能转化次数(上面显示的除外)。
(TC39 Temporal
proposal 正在努力改善这一点。)
是否可以使用 JavaScript 将来自服务器的 UTC 日期转换为特定的(英国)时区?这是针对用户可能配置了不正确的本地时区的情况。
您可以在传递给 toLocaleString
的选项中指定时区,这将使用 Date
对象表示的 point-in-time 创建一个本地化字符串,该字符串将转换为指定时区。
例如:
new Date("2020-09-17T17:15:00.000Z").toLocaleString('en-GB', { timeZone: 'Europe/London' })
//=> "17/09/2020, 18:15:00"
注意第一个参数是格式的语言环境,不是时区。如果您不想要特定格式,您可以传递 undefined
代替 - 这将使用用户的活动区域设置来选择格式。
另请注意,您无法获得处于该时区的 Date
对象。 Date
对象仅存储一个时间点(作为具有毫秒精度的 Unix 时间戳),它 总是 使用计算机的本地时区设置来实现其需要本地时间的功能转化次数(上面显示的除外)。
(TC39 Temporal
proposal 正在努力改善这一点。)