Ruby – 将格式化日期转换为时间戳

Ruby – 将格式化日期转换为时间戳,第1张

概述我需要将日期字符串转换为Unix时间戳格式. 我从API获得的字符串如下所示: 2015-05-27T07:39:59Z 与.tr()我得到: 2015-05-27 07:39:59 这是一种非常规则的日期格式.尽管如此,Ruby无法将其转换为Unix TS格式.我试过.to_time.to_i但我一直得到NoM​​ethodError错误. 在PHP中,函数strtotime()完全适用于此. 我需要将日期字符串转换为Unix时间戳格式.
我从API获得的字符串如下所示:

2015-05-27T07:39:59Z

与.tr()我得到:

2015-05-27 07:39:59

这是一种非常规则的日期格式.尽管如此,Ruby无法将其转换为Unix TS格式.我试过.to_time.to_i但我一直得到NoM​​ethodError错误.

在PHP中,函数strtotime()完全适用于此.
Ruby有一些类似的方法吗?

解决方法 您的日期字符串是RFC3339格式.您可以将其解析为DateTime对象,然后将其转换为Time,最后转换为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 +0200DateTime.rfc3339('2015-05-27T07:39:59Z').to_time.to_i#=> 1432712399

对于更通用的方法,您可以使用@L_403_0@而不是DateTime.rfc3339,但如果您知道格式,则最好使用更具体的方法,因为它可以防止由于日期字符串中的歧义而导致的错误.如果您有自定义格式,则可以使用DateTime.strptime进行解析

总结

以上是内存溢出为你收集整理的Ruby – 将格式化日期转换为时间戳全部内容,希望文章能够帮你解决Ruby – 将格式化日期转换为时间戳所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1244734.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存