首页 > 解决方案 > 将 UTC 时间转换为特定时区客户端

问题描述

是否可以使用 JavaScript 将来自服务器的 UTC 日期转换为特定(英国)时区?这是针对用户可能配置了不正确的本地时区的情况。

标签: javascripttimezoneutc

解决方案


您可以在传递给 的选项中指定时区toLocaleString,它将使用Date对象表示的时间点来创建转换为指定时区的本地化字符串。

例如:

new Date("2020-09-17T17:15:00.000Z").toLocaleString('en-GB', { timeZone: 'Europe/London' })
//=> "17/09/2020, 18:15:00"

请注意,第一个参数是格式的语言环境,而不是时区。如果您不想要特定格式,则可以undefined改为传递 - 这将使用用户的活动区域设置来选择格式。

另请注意,您无法获取Date位于该时区的对象。该Date对象仅存储一个时间点(作为具有毫秒精度的 Unix 时间戳),并且它始终将计算机的本地时区设置用于需要本地时间转换的功能(如上所示)。

TC39Temporal提案正在努力改进这一点。)


推荐阅读