将Ruby Time转换为HTML5全球日期&时间字符串

时间:2010-11-30 16:17:45

标签: ruby datetime date html5 time

在Ruby中,如何将Fixnum 1291132740128(自纪元以来的毫秒数)转换为等效HTML5 global time & date string(另请参阅HTML5 time element explanation。例如,1979-10-14T12:00: 00.001-04:00)

我的第一次尝试是:

> Time.at(1291132740128/1000.0).strftime("%Y-%m-%dT%H:%M:%S-%Z")
=> "2010-11-30T10:59:00-EST"

但是,(1)我怎么得到毫秒?时间是否存储毫秒数?
并且,(2)如何将时区设为-0400或-0500,具体取决于是否为夏令时?

编辑:现在我考虑一下,或许最好将其保留为1291132740128并根据浏览器位置使用JavaScript进行转换。你觉得怎么样?

2 个答案:

答案 0 :(得分:1)

1 %3N中的strftime将为您提供毫秒:

Time.at(1291132740128/1000.0).strftime("%Y-%m-%dT%H:%M:%S.%3N-%Z")
=> "2010-11-30T16:59:00.128-CET"

2)这不是自动的吗?

编辑:如果用户在这种情况下关闭了他的JS,会发生什么?我认为这取决于使用情况。

答案 1 :(得分:1)

它没有显示毫秒,但你可以试试这个:

Time.at(1291132740128/1000.0).xmlschema
 => "2010-11-30T16:59:00+01:00"