我需要将日期字符串转换为Unix时间戳格式。我从API获得的字符串如下所示:
2015-05-27T07:39:59Z
与.tr()
我得到:
2015-05-27 07:39:59
这是一种很常规的日期格式。但是,Ruby无法将其转换为Unix TS格式。我试过了,.to_time.to_i
但是我不断收到NoMethodError
错误消息。
在PHP中,此功能strtotime()
非常适合此功能。Ruby有类似的方法吗?
您的日期字符串为RFC3339格式。您可以DateTime
将其解析为一个对象,然后将其转换Time
为UNIX时间戳,最后转换为UNIX时间戳。
require 'date'
DateTime.rfc3339('2015-05-27T07:39:59Z')
#=> #<DateTime: 2015-05-27T07:39:59+00:00 ((2457170j,27599s,0n),+0s,2299161j)>
DateTime.rfc3339('2015-05-27T07:39:59Z').to_time
#=> 2015-05-27 09:39:59 +0200
DateTime.rfc3339('2015-05-27T07:39:59Z').to_time.to_i
#=> 1432712399
对于更通用的方法,可以使用DateTime.parse
代替DateTime.rfc3339
,但是如果知道格式,则最好使用更具体的方法,因为它可以防止由于日期字符串中的歧义而导致错误。如果您有自定义格式,则可以使用DateTime.strptime
它进行解析
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句