如何将毫秒转换为Javascript UTC日期

How do you convert Milliseconds into a Javascript UTC date?

本文关键字:Javascript UTC 日期 转换      更新时间:2023-09-26

如果我有数字1446309338000,我如何创建JavaScript UTC日期?

new Date(1446309338000)将等于CST时间(中央标准)或本地时间
new Date(Date.UTC(year, month, day, hour, minute, second))还没有得到这个信息。

如果我这样做,JavaScript会改变时间吗?

new Date(1446309338000).ISOString();

它是否创建了一个新的CST日期,然后将其转换为UTC?我真的只需要绳子。我从数据库中获取它(来自Azure表存储数据库的RowKey)。

如果您的毫秒数已经是UTC日期。这基本上意味着世界时间。现在,基于这些毫秒,您可以将Date对象转换为类似的字符串:

new Date(1446309338000).toCString()//时区自由通用格式>"2015年10月31日星期六格林尼治标准时间16:35:38"new Date(1446309338000).toString()//浏览器本地时区字符串>"2015年10月31日星期六09:35:38 GMT-0700(PDT)"new Date(1446309338000).toISOString()//UTC时间的ISO格式>"2015-10-31T16:35:38.000Z"

现在,如果出于某种原因(我看不出有效的原因,但只是为了好玩),你想要有不同的毫秒数来表示不同的日期,但在本地浏览器时区打印相同的日期,你可以这样计算:

new日期(1446309338000-new日期(144 6309338000).getTimezoneOffset()*60*1000))

现在,原始日期的toString和新日期的toUTCString将读取相同的时区信息,因为它们当然不是相同的日期!

新日期(1446309338000).toString()>"2015年10月31日星期六09:35:38 GMT-0700(PDT)"new日期(1446309338000-new日期(144 6309338000).getTimezoneOffset()*60*1000).toCString()>"2015年10月31日星期六09:35:38 GMT"

这其实就像自制饼干一样简单,如果你有约会对象,说:

var date_in_milliseconds = 1504640419000;


然后,您可以初始化一个新的日期,如下所示:

var human_readable_date = new Date(0); //Date(0) creates a date at the Epoch, so Wed Dec 31 1969

现在,只需将毫秒添加到Epoch中,这将为我们提供所需的日期:

human_readable_date.setUTCMilliseconds(date_in_milliseconds);

如果日期字符串是您所需要的,希望这有帮助:

new Date(1446309338000).toLocaleString('en-US', {timeZone: 'UTC'})

toISOString()而言,它使用ISO-8601标准返回字符串表示(格式为:YYYY-MM-DDTHH:MM:ss.sssZ)。
toLocaleString()是具有相同结果的人类可读格式。