【问题标题】:Convert UTC time string to local timezone in javascript在javascript中将UTC时间字符串转换为本地时区
【发布时间】:2017-04-02 16:00:29
【问题描述】:
如何以相同格式将 UTC 字符串(如 '11:00')转换为本地时间。我在 javascript 中使用了 Date 函数来转换它,但我想要一个快速可靠的替代方案。
还可以获取当地时区的时区缩写和星期几。
【问题讨论】:
标签:
javascript
date
datetime
utc
【解决方案1】:
如何将 UTC 中的字符串(如 '11:00')同时转换为本地时间
格式。
在下文中,“本地”表示非 UTC 方法返回的值,它考虑了主机系统时区设置。
一种方法是创建一个日期,将 UTC 时间设置为适当的时间,然后读回本地时间值,例如
var d = new Date();
// Set time to 11:00
d.setUTCHours(11,0,0,0);
// Get "local" date and time
console.log(d.toString());
我在 javascript 中使用了 Date 函数来转换它,但我
想要一个快速可靠的替代方案。
要求推荐书籍、图书馆、工具等的问题是题外话。
还要获取时区缩写
有多种资源可以估计时区的名称,但名称没有标准。大多数解析方法都基于不同日期的主机时区偏移量,这不是 100% 可靠的,尤其是在名称应该是什么方面没有达成一致意见时。
当地时区的星期几。
本地星期几由 getDay 方法提供,所以:
var dayNumber = d.getDay(); // 0 for Sunday, 1 for Monday, etc.
如果支持 ECMA-402 国际化接口,您可以使用主机默认语言获取工作日名称:
var d = new Date();
console.log('Today is ' + d.toLocaleString(undefined, {weekday: 'long'}) + '.')