如何在Ruby中将时间字符串转换为秒数

时间:2011-02-13 21:55:15

标签: ruby time

我有以下时间字符串,我需要转换为自午夜(一天开始)以来的秒数。我一直在寻找Ruby Api,但未能提出解决方案。任何想法都将不胜感激。

time_string = '4:12:38 PM ET'

2 个答案:

答案 0 :(得分:4)

将字符串转换为时间使用

new_time = Time.parse(time_string)

这将返回一个Time对象。那么你可以从你给定的时间中减去午夜的时间,如下:

midnight = Time.local(2010,2,13,0,0,0)
seconds = (new_time - midnight).to_i # Number of seconds as an integer, .to_f works too

当然,对于Time.local,您应该使用今天的日期,而不是上面的硬编码值。

答案 1 :(得分:3)

如果您安装了active_support,也可以执行此操作

require 'rubygems'
require 'time'
require 'active_support/core_ext/time/calculations'

puts Time.parse('4:12:38 PM ET').seconds_since_midnight.to_i