如何将毫秒转换为Javascript UTC日期?
如果我有编号如何将毫秒转换为Javascript UTC日期?,javascript,azure-table-storage,Javascript,Azure Table Storage,如果我有编号144630933800,如何创建JavaScript UTC日期 新日期(144630933800)将等于CST时间(中央标准)或当地时间。 新日期(Date.UTC(年、月、日、小时、分钟、秒))尚未获得此信息 如果我这样做,JavaScript会改变时间吗 new Date(1446309338000).ISOString(); 是否创建新的CST日期,然后将其转换为UTC?我真的需要那根绳子。我从一个数据库(Azure表存储数据库中的RowKey)获取它。如果日期字符串是您
144630933800
,如何创建JavaScript UTC日期
新日期(144630933800)
将等于CST时间(中央标准)或当地时间。新日期(Date.UTC(年、月、日、小时、分钟、秒))
尚未获得此信息
如果我这样做,JavaScript会改变时间吗
new Date(1446309338000).ISOString();
是否创建新的CST日期,然后将其转换为UTC?我真的需要那根绳子。我从一个数据库(Azure表存储数据库中的RowKey)获取它。如果日期字符串是您所需要的,希望这对您有所帮助:
new Date(1446309338000).toLocaleString('en-US', {timeZone: 'UTC'})
就toISOString()
而言,它使用ISO-8601标准返回字符串表示(格式为:YYYY-MM-DDTHH:MM:ss.sssZ)。
toLocaleString()
是人类可读的格式,具有相同的结果。如果您的毫秒数已经是UTC日期。基本上是指世界时间。现在,基于这些毫秒,您可以将日期对象转换为类似的字符串:
new Date(1446309338000).toUTCString() // timezone free universal format
> "Sat, 31 Oct 2015 16:35:38 GMT"
new Date(1446309338000).toString() // browser local timezon string
> "Sat Oct 31 2015 09:35:38 GMT-0700 (PDT)"
new Date(1446309338000).toISOString() // ISO format of the UTC time
> "2015-10-31T16:35:38.000Z"
新日期(144630933800).toutString()//无时区通用格式
>“2015年10月31日星期六16:35:38 GMT”
新日期(144630933800).toString()//浏览器本地时区字符串
>“2015年10月31日星期六09:35:38 GMT-0700(PDT)”
新日期(144630933800).toISOString()//UTC时间的ISO格式
>“2015-10-31T16:35:38.000Z”
现在,如果出于某种原因(我看不出一个有效的原因,但只是为了见鬼),您正在寻找表示不同日期但在本地浏览器时区打印相同日期的不同毫秒数,您可以执行以下计算:
new Date(1446309338000 - new Date(1446309338000).getTimezoneOffset() * 60 * 1000))
新日期(144630933800-新日期(144630933800).getTimezoneOffset()*60*1000))
现在toString from origing Date和ToutString of the new Date将读取相同的时区信息,因为它们当然不是相同的日期
new Date(1446309338000).toString()
> "Sat Oct 31 2015 09:35:38 GMT-0700 (PDT)"
new Date(1446309338000 - new Date(1446309338000).getTimezoneOffset() * 60 * 1000).toUTCString()
> "Sat, 31 Oct 2015 09:35:38 GMT"
新日期(144630933800)
>“2015年10月31日星期六09:35:38 GMT-0700(PDT)”
新日期(144630933800-新日期(144630933800).getTimezoneOffset()*60*1000.ToutString()
>“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
现在,只需将毫秒添加到历元中,这将为我们提供所需的日期:
human_readable_date.setUTCMilliseconds(date_in_milliseconds);
日期对象已在UTC中。您是否试图将月、日、小时、分钟等作为UTC?请参考Date提供的方法:
new Date(144630933800)
是您想要的,您只需要访问UTC方法而不是本地时间方法。在控制台中,它以本地时间显示,因为d.toString()
将本地时间作为字符串生成,那么这是做什么的:新日期(Date.UTC(年、月、日、时、分、秒))?这(UTC)与其他构造函数有何不同?@markthegrea新日期(毫秒)
是UTC,因为它是UTC 1970-01-01午夜后的毫秒数。而新日期(y、m、d、h、m、s)
将日期时间组合解释为本地时间。因此Date.UTC(y,m,d,h,m,s)
将日期时间组合解释为UTC,并返回1970年以来的毫秒数。