给出字符串
“00:00:25123”
的格式为
“小时:分钟:秒,毫秒”
如何创建日期/时间对象,然后允许我添加减去秒?
我对年,月,日,时区等不感兴趣。我只想使用小时,分钟,秒和毫秒组件。
答案 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)
如果您不需要日期部分,请不要使用Time
或DateTime
,只需跟踪作为浮点数的秒数:
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