2017-01-16 233 views
1

我有以下Unix时间戳:1478698378000红宝石UNIX日期不正确

而且我试图表现出本作中,红宝石日期时间,例如

<%= Time.at(@timestamp).to_datetime %> 

哪些应该返回的日期:Wed, 09 Nov 2016 13:32:58 GMT但上面的代码实际上返回的日期:48828-02-01T13:26:40+00:00忽略格式!

正如你可以看到它认为,时间戳为2月2日13时26分40秒48828。

为什么日期时间出来完全不正确的,今年迄今为止的未来这样呢?检查http://www.epochconverter.com/上的时间戳显示时间戳是正确的,所以它是Ruby返回它不正确。

回答

6

Time.at期望秒作为参数,您的时间戳是毫秒量。请参阅documentation on Time.at

+0

Ah'<%= Time.at((@ crash.timestamp/1000))。to_datetime%>'解决了它! – Cameron

+0

Upvoted只是为了公平。 OP必须接受这个答案,而不是用他自己的名字重新发布。 – mudasobwa

1

为什么不检查针对“时装周杂志”或“世界性”网站的unix时间戳正确性?

UNIX时间戳是自1970-01-01 UTC的秒数量持续:

date --date='@1478698378000' 
mar feb 1 14:26:40 CET 48828 

BTW,下降近三年零让你回到你所预期的:

date --date='@1478698378' 
mié nov 9 14:32:58 CET 2016