我有unix TimeStamp值,以UTC为单位。我想将时间戳转换为带有时区的本地日期和时间。
通过使用以下代码,我可以转换为UTC日期和时间
function convertTimestamp(timestamp) {
var d = new Date(timestamp * 1000),
yyyy = d.getFullYear(),
mm = ('0' + (d.getMonth() + 1)).slice(-2),
dd = ('0' + d.getDate()).slice(-2),
hh = d.getHours(),
h = hh,
min = ('0' + d.getMinutes()).slice(-2),
time;
time = yyyy + '-' + mm + '-' + dd + ', ' + h + ':' + min + ' ';
return time;
}
示例:
3680283088 => 05/10/2017 13:46:49 EDT
请建议使用时区将UTC时间戳转换为本地日期和时间的正确方法。
答案 0 :(得分:2)
如果环境完全实施the ECMA-402 specification,您可以使用toLocaleString
一些选项,如下所示:
.sort()
请注意,var d = new Date(yourTimestamp);
var s = d.toLocaleString('en-US', {hour12: false, timeZoneName: 'short'}).replace(',','');
// example: "8/16/2017 12:58:07 PDT"
是因为在我的Chrome浏览器上,日期和时间部分之间有一个逗号,您没有要求提供逗号。另请注意,其他实现可能会有所不同,因此无法保证在任何地方都能提供完全相同的输出。