我有UTC时间1502212611.我必须将其转换为2017-08-08 17:16:51
。但是当我使用下面的代码时,我得到2017-08-08T17:16:51.000Z
。
var utc = 1502212611;
var utcSeconds = utc;
var d = new Date(0);
d.setUTCSeconds(utcSeconds);
console.log(d);
答案 0 :(得分:4)
您可以使用moment.js,正如其他人已经建议的那样
但是你的问题不清楚你是否想要输出为UTC或IST(问题标题说“将UTC转换为IST”,但在问题中所需的输出(2017-08-08 17:16:51
)是相应的UTC日期期/时间)
无论如何,如果你想要UTC格式的输出,你可以这样做:
var utc = 1502212611;
var m = moment.unix(utc).utc().format('YYYY-MM-DD HH:mm:ss');
console.log(m);
unix
方法从纪元(1970-01-01T00:00Z
)开始占用秒值。然后utc()
方法确保日期格式为UTC(如果您不调用它,日期将使用默认时区显示,默认时区可能因系统而异)。
输出将是:
2017-08-08 17:16:51
如果您需要转换为IST,则还需要使用moment timezone:
var utc = 1502212611;
var m = moment.unix(utc).tz('Asia/Kolkata').format('YYYY-MM-DD HH:mm:ss');
console.log(m);
tz
方法将日期转换为另一个时区。其余代码与前一代码类似。
输出将是:
2017-08-08 22:46:51
请注意,我使用的是Asia/Kolkata
而不是IST
。这是因为API使用IANA timezones names(始终采用Region/City
格式,例如Asia/Kolkata
或Europe/Berlin
。
避免使用3个字母的缩写(例如IST
或PST
),因为它们是ambiguous and not standard - IST
可以是“印度标准时间”,“以色列标准时间“或”爱尔兰标准时间“,API无法处理这种歧义(上面的代码不适用于IST
,因此您必须使用适当的时区名称。)
您可以致电moment.tz.names()
获取所有可用时区名称的列表(并选择最适合您情况的名称)。
在普通的Javascript中,您必须手动执行:
// pad zero if value <= 9
function pad(value) {
return value > 9 ? value: "0" + value;
}
var utc = 1502212611;
var d = new Date(0);
d.setUTCSeconds(utc);
var m = d.getUTCFullYear() + '-' + pad(d.getUTCMonth() + 1) + '-' + pad(d.getUTCDate())
+ ' ' + pad(d.getUTCHours()) + ':' + pad(d.getUTCMinutes())+ ':' + pad(d.getUTCSeconds());
console.log(m);
输出:
2017-08-08 17:16:51
答案 1 :(得分:-1)
如果你有时间,你可以使用片刻。
momenttime = moment()
momenttime.format("YYYY-MM-DD hh:mm:ss ")