初始化日期,小时/分钟/秒字符串

时间:2014-02-16 11:41:28

标签: ruby date

给出字符串

  

“00:00:25123”

的格式为

  

“小时:分钟:秒,毫秒”

如何创建日期/时间对象,然后允许我添加减去秒?

我对年,月,日,时区等不感兴趣。我只想使用小时,分钟,秒和毫秒组件。

2 个答案:

答案 0 :(得分:1)

我会这样做:

require 'time'

s = "00:00:25,123"
t = Time.strptime(s,"%H:%M:%S,%L") # => 2014-02-16 00:00:25 +0530

然后使用Time#+添加/减去t中的秒数。

# add 20 seconds
t + 20 # => 2014-02-16 00:00:45 +0530
# subtract 20 seconds
t - 20 # => 2014-02-16 00:00:05 +0530

如果您想获得毫秒,请使用Time#subsec,如下所示:

require 'time'

s = "00:00:25,123"
t = Time.strptime(s,"%H:%M:%S,%L")
t.subsec # => (123/1000)

答案 1 :(得分:1)

如果您不需要日期部分,请不要使用TimeDateTime,只需跟踪作为浮点数的秒数:

hours_str, minutes_str, seconds_str = s.split(':')
seconds  = seconds_str.sub(',', '.').to_f
seconds += hours_str.to_i * 60 * 60
seconds += minutes_str.to_i * 60